1100 |
How can I advance to the next line, once the user presses the ENTER key
PROCEDURE OnKeyDown(oGrid,KeyCode,Shift) DevOut( "KeyCode Before:" ) DevOut( Transform(KeyCode,"") ) KeyCode := oGrid:FormatABC("value = 13 ? 40 : value",KeyCode) DevOut( "KeyCode After:" ) DevOut( Transform(KeyCode,"") ) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumns LOCAL oEditor,oEditor1 LOCAL oItems LOCAL h0 oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:KeyDown := {|KeyCode,Shift| OnKeyDown(oGrid,KeyCode,Shift)} /*Occurs when the user presses a key while an object has the focus.*/ oGrid:BeginUpdate() oColumns := oGrid:Columns() oEditor := oColumns:Add("A"):Editor() oEditor:Appearance := 4/*EtchedApp*/ oEditor:EditType := 1/*EditType*/ oEditor1 := oColumns:Add("B"):Editor() oEditor1:Appearance := 4/*EtchedApp*/ oEditor1:EditType := 1/*EditType*/ oItems := oGrid:Items() h0 := oItems:AddItem("Item A.1") oItems:SetProperty("CellValue",h0,1,"Item B.1") h0 := oItems:AddItem("Item A.2") oItems:SetProperty("CellValue",h0,1,"Item B.2") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1099 |
I am using AddNew to add new records, but I can not see them into the control
PROCEDURE OnButtonClick(oGrid,Item,ColIndex,Key) LOCAL oRecordset oRecordset := oGrid:DataSource() oRecordset:AddNew() oRecordset:Fields:Item("A"):Value := "new A" oRecordset:Fields:Item("B"):Value := "new B" oRecordset:Update() RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oItems LOCAL h LOCAL rs oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:ButtonClick := {|Item,ColIndex,Key| OnButtonClick(oGrid,Item,ColIndex,Key)} /*Occurs when user clicks on the cell's button.*/ oGrid:BeginUpdate() oGrid:HeaderAppearance := 4/*Etched*/ rs := CreateObject("ADODB.Recordset") rs:Fields():Append("A",8/*adBSTR*/) rs:Fields():Append("B",8/*adBSTR*/) rs:Open() rs:AddNew() rs:Fields:Item("A"):Value := "Item A.1" rs:Fields:Item("B"):Value := "Item B.1" rs:Update() rs:AddNew() rs:Fields:Item("A"):Value := "Item A.2" rs:Fields:Item("B"):Value := "Item B.2" rs:Update() oGrid:DataSource := rs oItems := oGrid:Items() oItems:SetProperty("LockedItemCount",0/*exTop*/,1) h := oItems:LockedItem(0/*exTop*/,0) oItems:SetProperty("ItemDivider",h,0) oItems:SetProperty("CellHasButton",h,0,.T.) oItems:SetProperty("CellValue",h,0,"AddNew") oItems:SetProperty("CellHAlignment",h,0,1/*CenterAlignment*/) oGrid:DetectAddNew := .T. oGrid:DetectDelete := .T. oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1098 |
How can I create a new ADO recordset
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL rs oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() rs := CreateObject("ADODB.Recordset") rs:Fields():Append("A",8/*adBSTR*/) rs:Fields():Append("B",8/*adBSTR*/) rs:Open() rs:AddNew() rs:Fields:Item("A"):Value := "Item A.1" rs:Fields:Item("B"):Value := "Item B.1" rs:Update() rs:AddNew() rs:Fields:Item("A"):Value := "Item A.2" rs:Fields:Item("B"):Value := "Item B.2" rs:Update() oGrid:DataSource := rs oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1097 |
Do do I get the DAO version I have installed
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) DevOut( CreateObject("DAO.DBEngine.35"):Version():Version() ) DevOut( CreateObject("DAO.DBEngine.36"):Version():Version() ) DevOut( CreateObject("DAO.DBEngine.120"):Version():Version() ) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1096 |
How do I get a list of interfaces the object implemenets
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL rs LOCAL oPrivDBEngine oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:ColumnAutoResize := .F. oPrivDBEngine := CreateObject("DAO.DBEngine.120") rs := oPrivDBEngine:OpenDatabase("C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb"):OpenRecordset("Orders") DevOut( CreateObject("Exontrol.PropertiesList"):Interfaces(rs):Interfaces(rs) ) oGrid:DataSource := rs oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1095 |
Do do I get the ADO version I have installed
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) DevOut( "ADO Version:" ) DevOut( CreateObject("ADODB.Connection"):Version():Version() ) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1094 |
DAO, ACCDB, 120
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL rs LOCAL oPrivDBEngine oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:ColumnAutoResize := .F. oPrivDBEngine := CreateObject("DAO.DBEngine.120") rs := oPrivDBEngine:OpenDatabase("C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb"):OpenRecordset("Orders") oGrid:DataSource := rs oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1093 |
DAO, MDB, 120
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL rs LOCAL oPrivDBEngine oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:ColumnAutoResize := .F. oPrivDBEngine := CreateObject("DAO.DBEngine.120") rs := oPrivDBEngine:OpenDatabase("C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb"):OpenRecordset("Orders") oGrid:DataSource := rs oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1092 |
DAO, MDB
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL rs LOCAL oPrivDBEngine oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:ColumnAutoResize := .F. oPrivDBEngine := CreateObject("DAO.DBEngine.36") rs := oPrivDBEngine:OpenDatabase("C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.mdb"):OpenRecordset("Orders") oGrid:DataSource := rs oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1091 |
ADODB, ACCDB, x64
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL rs oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:ColumnAutoResize := .F. rs := CreateObject("ADODB.Recordset") rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",1/*adOpenKeyset*/,1/*adLockReadOnly*/) oGrid:DataSource := rs oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1090 |
ADOR, ACCDB
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL rs oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:ColumnAutoResize := .F. rs := CreateObject("ADOR.Recordset") rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/) oGrid:DataSource := rs oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1089 |
ADODB, MDB
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL rs oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:ColumnAutoResize := .F. rs := CreateObject("ADODB.Recordset") rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/) oGrid:DataSource := rs oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1088 |
ADOR, MDB
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL rs oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:ColumnAutoResize := .F. rs := CreateObject("ADOR.Recordset") rs:Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/) oGrid:DataSource := rs oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1087 |
How can I display the row on multiple lines (excrd)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2,oColumn3 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:HeaderAppearance := 4/*Etched*/ oGrid:SelBackMode := 1/*exTransparent*/ oColumn := oGrid:Columns():Add("Default") oColumn:SetProperty("Def",32/*exCellFormatLevel*/,"[b=0]60;1[b=15]:60,((20;" + CHR(34) + "<fgcolor=808080>Dateigröße" + CHR(34) + "[b=1][a=2]:120,2[b=15])/(20;" + CHR(34) + "<fgcolor=808080>Erstellt am" + CHR(34) + "[a=2]:120,3[b=15])/(20;" + CHR(34) + "<fgcolor=808080>Zuletzt bearbeitet" + CHR(34) + "[b=4][a=2]:120,4[b=15]))") oColumn:AllowSort := .F. oGrid:Columns():Add(Transform(1,"")):Visible := .F. oColumn1 := oGrid:Columns():Add(Transform(2,"")) oColumn1:Visible := .F. oColumn1:Editor():EditType := 1/*EditType*/ oColumn1:FormatColumn := "1 index `A-Z`" oColumn2 := oGrid:Columns():Add(Transform(3,"")) oColumn2:Visible := .F. oColumn2:Editor():EditType := 1/*EditType*/ oColumn2:FormatColumn := "1 index ``" oColumn3 := oGrid:Columns():Add(Transform(4,"")) oColumn3:Visible := .F. oColumn3:Editor():EditType := 1/*EditType*/ oColumn3:FormatColumn := "date(``)" oGrid:DefaultItemHeight := 48 oGrid:DrawGridLines := -2/*exRowLines*/ oGrid:GridLineStyle := 48/*exGridLinesSolid*/ oGrid:SetProperty("ViewModeOption",0/*exTableView*/,0/*exBorderWidth*/,1) oGrid:SetProperty("ViewModeOption",0/*exTableView*/,1/*exBorderHeight*/,1) oItems := oGrid:Items() oItems:SetProperty("CellValue",oItems:AddItem(""),1,"One") oItems:SetProperty("CellValue",oItems:AddItem(""),1,"Two") oItems:SetProperty("CellValue",oItems:AddItem(""),1,"Three") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1086 |
Type of wraps the cell's caption support (Sample 2)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2 LOCAL oColumns LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:HeaderSingleLine := .F. oGrid:HeaderHeight := 36 oGrid:DrawGridLines := -2/*exRowLines*/ oGrid:ColumnAutoResize := .F. oGrid:ScrollBySingleLine := .T. oColumns := oGrid:Columns() oColumn := oColumns:Add("Single-Line (exCaptionSingleLine)") oColumn:Width := 96 oColumn:SetProperty("Def",17/*exCellValueFormat*/,1) oColumn:SetProperty("Def",16/*exCellSingleLine*/,-1) oColumn1 := oColumns:Add("Word-Wrap (exCaptionWordWrap)") oColumn1:Width := 96 oColumn1:SetProperty("Def",17/*exCellValueFormat*/,1) oColumn1:SetProperty("Def",16/*exCellSingleLine*/,0) oColumn1:FormatColumn := "%0" oColumn2 := oColumns:Add("Break-Wrap (exCaptionBreakWrap)") oColumn2:Width := 96 oColumn2:SetProperty("Def",17/*exCellValueFormat*/,1) oColumn2:SetProperty("Def",16/*exCellSingleLine*/,1) oColumn2:FormatColumn := "%0" oItems := oGrid:Items() oItems:AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.") oItems:AddItem("This is the <b>first</b> line.\r\nThis is the <b>second</b> line.\r\nThis is the <b>third</b> line.") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1085 |
Type of wraps the cell's caption support (Sample 1)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:HeaderSingleLine := .F. oGrid:HeaderHeight := 36 oGrid:DrawGridLines := -2/*exRowLines*/ oGrid:ColumnAutoResize := .F. oGrid:ScrollBySingleLine := .T. oGrid:Columns():Add("Default"):Width := 128 oItems := oGrid:Items() h := oItems:AddItem("This is the first line.\r\nThis is the second line.\r\nThis is the third line.") h := oItems:AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.") oItems:SetProperty("CellValueFormat",h,0,1/*exHTML*/) h := oItems:AddItem("This is the first line.\r\nThis is the second line.\r\nThis is the third line.") oItems:SetProperty("CellSingleLine",h,0,0/*exCaptionWordWrap*/) h := oItems:AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.") oItems:SetProperty("CellValueFormat",h,0,1/*exHTML*/) oItems:SetProperty("CellSingleLine",h,0,0/*exCaptionWordWrap*/) h := oItems:AddItem("This is the first line.\r\nThis is the second line.\r\nThis is the third line.") oItems:SetProperty("CellSingleLine",h,0,1/*exCaptionBreakWrap*/) h := oItems:AddItem("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.") oItems:SetProperty("CellValueFormat",h,0,1/*exHTML*/) oItems:SetProperty("CellSingleLine",h,0,1/*exCaptionBreakWrap*/) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1084 |
Can I break the cell's caption using the line break <br> or \r\n (Sample 2)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:DrawGridLines := -2/*exRowLines*/ oGrid:ColumnAutoResize := .F. oGrid:ScrollBySingleLine := .T. oGrid:Columns():Add("Default"):Width := 128 oItems := oGrid:Items() oItems:SetProperty("CellSingleLine",oItems:AddItem("This is the first line.\r\nThis is the second line.\r\nThis is the third line."),0,1/*exCaptionBreakWrap*/) oItems:AddItem("This is the first line.\r\nThis is the second line.\r\nThis is the third line.") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1083 |
Can I break the cell's caption using the line break <br> or \r\n (Sample 1)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:HeaderAppearance := 4/*Etched*/ oGrid:DrawGridLines := -2/*exRowLines*/ oGrid:GridLineStyle := 512/*exGridLinesGeometric*/ oGrid:ColumnAutoResize := .F. oGrid:ScrollBySingleLine := .T. oColumn := oGrid:Columns():Add("Default") oColumn:Width := 196 oColumn:SetProperty("Def",16/*exCellSingleLine*/,1) oItems := oGrid:Items() h := oItems:AddItem("<solidline><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;properties>+</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a ;methods>+</a><br>+ withdraw(amount: Currency)") oItems:SetProperty("CellValueFormat",h,0,1/*exHTML*/) oItems:AddItem("This is the first line.\r\nThis is the second line.\r\nThis is the third line.") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1082 |
How can I change the visual appearance/color of the Filter For ... field
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oGrid:SetProperty("BackColorHeader",AutomationTranslateColor( GraMakeRGBColor ( { 1,0,0 } ) , .F. )) oGrid:SetProperty("ForeColorHeader",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. )) oGrid:SetProperty("Background",26/*exBackColorFilter*/,oGrid:BackColorHeader()) oGrid:SetProperty("Background",27/*exForeColorFilter*/,oGrid:ForeColorHeader()) oGrid:SetProperty("Background",0/*exHeaderFilterBarButton*/,AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. )) oGrid:SetProperty("Background",32/*exCursorHoverColumn*/,-1) oGrid:HeaderAppearance := 5/*Bump*/ oColumn := oGrid:Columns():Add("Items") oColumn:FilterOnType := .T. oColumn:DisplayFilterButton := .T. oColumn:FilterList := 2/*exNoItems*/ oItems := oGrid:Items() h := oItems:AddItem("Root 1") oItems:InsertItem(h,,"Child 1") oItems:InsertItem(h,,"Child 2") oItems:SetProperty("ExpandItem",h,.T.) h := oItems:AddItem("Root 2") oItems:InsertItem(h,,"Child 1") oItems:InsertItem(h,,"Child 2") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1081 |
How can I display the cell's caption without spaces on both sides
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:ColumnAutoResize := .T. oColumn := oGrid:Columns():Add("Default") oColumn:SetProperty("Def",17/*exCellValueFormat*/,1) oColumn:FormatColumn := "((trim(value) replace ` ` with ` `) replace ` ` with ` `) replace ` ` with `<bgcolor=FF0000> </bgcolor>`" oItems := oGrid:Items() oItems:AddItem("") oItems:AddItem("Item A") oItems:AddItem(" Item B") oItems:AddItem(" Item C ") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1080 |
How can I highlight the spaces within the column (sample 2)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:ColumnAutoResize := .T. oColumn := oGrid:Columns():Add("Default") oColumn:SetProperty("Def",17/*exCellValueFormat*/,1) oColumn:FormatColumn := "`'` + ( value replace ` ` with `_` ) + `'`" oItems := oGrid:Items() oItems:AddItem("") oItems:AddItem("Item A") oItems:AddItem(" Item B") oItems:AddItem(" Item C ") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1079 |
How can I highlight the spaces within the column (sample 1)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:ColumnAutoResize := .T. oColumn := oGrid:Columns():Add("Default") oColumn:SetProperty("Def",17/*exCellValueFormat*/,1) oColumn:FormatColumn := "len(value) = 0 ? `<bgcolor=FF0000> </bgcolor>` : ( value replace ` ` with `<bgcolor=FF0000> </bgcolor>` )" oItems := oGrid:Items() oItems:AddItem("") oItems:AddItem("Item A") oItems:AddItem(" Item B") oItems:AddItem(" Item C ") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1078 |
How can I change the visual aspect of the drop down filter-calendar
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:SetProperty("Background",26/*exBackColorFilter*/,AutomationTranslateColor( GraMakeRGBColor ( { 0,0,1 } ) , .F. )) oGrid:SetProperty("Background",27/*exForeColorFilter*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. )) oGrid:SetProperty("Background",12/*exDateScrollRange*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. )) oGrid:SetProperty("Background",8/*exDateHeader*/,oGrid:Background(26/*exBackColorFilter*/)) oGrid:SetProperty("Background",11/*exDateScrollThumb*/,AutomationTranslateColor( GraMakeRGBColor ( { 128,128,128 } ) , .F. )) oColumn := oGrid:Columns():Add("Date") oColumn:FilterType := 4/*exDate*/ oColumn:DisplayFilterButton := .T. oColumn:DisplayFilterDate := .T. oColumn:DisplayFilterPattern := .F. oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1077 |
How can I hide the filter bar description
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oColumn := oGrid:Columns():Add("Filter") oColumn:DisplayFilterButton := .T. oColumn:FilterType := 240/*exFilter*/ oColumn:Filter := "B" oItems := oGrid:Items() oItems:AddItem("A") oItems:AddItem("B") oItems:AddItem("C") oGrid:ApplyFilter() oGrid:FilterBarHeight := 0 oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1076 |
Export Data in HTML format
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5,oColumn6 LOCAL oColumns LOCAL oConditionalFormat,oConditionalFormat1 LOCAL oConditionalFormats LOCAL oItems LOCAL oShellBrowserWindow LOCAL h,sFile oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oGrid:SetProperty("BackColorAlternate",AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. )) oGrid:DrawGridLines := -1/*exAllLines*/ oGrid:HeaderAppearance := 4/*Etched*/ oGrid:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oGrid:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oGrid:Description(11/*exFilterBarAnd*/)),"")) oGrid:FilterBarCaption := "(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` ) + `<r><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))" oGrid:FilterBarPromptVisible := 2579/*exFilterBarCompact+exFilterBarShowCloseIfRequired+exFilterBarSingleLine+exFilterBarVisible+exFilterBarPromptVisible*/ oGrid:FilterBarPromptType := 2/*exFilterPromptContainsAny*/ oConditionalFormats := oGrid:ConditionalFormats() oConditionalFormats:Add("%0 like `*parent*`","parent"):SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor ( { 192,192,192 } ) , .F. )) oConditionalFormat := oConditionalFormats:Add("%0 like `*child*`","child") oConditionalFormat:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,128,128 } ) , .F. )) oConditionalFormat:ApplyTo := 0/*exFormatToColumns*/ oConditionalFormat1 := oConditionalFormats:Add("%0 like `*B*`","b") oConditionalFormat1:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,255 } ) , .F. )) oConditionalFormat1:Bold := .T. oConditionalFormat1:Italic := .T. oConditionalFormat1:ApplyTo := 0/*exFormatToColumns*/ oColumns := oGrid:Columns() oColumn := oColumns:Add("Value") oColumn:Width := 128 oColumn:HTMLCaption := "<b>VA</b><r>sko" oColumn1 := oColumns:Add("APos") oColumn1:FormatColumn := "0 apos ``" oColumn1:AllowSort := .F. oColumn1:SetProperty("Def",4/*exCellBackColor*/,15790320) oColumn1:SetProperty("Def",5/*exCellForeColor*/,8421504) oColumn1:SetProperty("Def",8/*exHeaderForeColor*/,oColumn1:Def(5/*exCellForeColor*/)) oColumn1:Position := 0 oColumn2 := oColumns:Add("RPos") oColumn2:FormatColumn := "0 rpos ``" oColumn2:AllowSort := .F. oColumn2:Position := 1 oColumn3 := oColumns:Add("Index") oColumn3:FormatColumn := "0 index ``" oColumn3:DisplayFilterButton := .T. oColumn3:FilterList := 256/*exShowCheckBox*/ oColumn3:Position := 2 oColumn4 := oColumns:Add("Data 1") oColumn4:FormatColumn := "0 index `A-Z`" oColumn4:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn5 := oColumns:Add("Data 2") oColumn5:FormatColumn := "0 index `AB` replace `A` with `<off -4>A</off>`" oColumn5:SetProperty("Def",16/*exCellSingleLine*/,.F.) oColumn5:SetProperty("Def",17/*exCellValueFormat*/,1) oColumn5:SetProperty("Def",1/*exCellHasRadioButton*/,.T.) oColumn6 := oColumns:Add("Data 3") oColumn6:FormatColumn := "0 index `CDC` replace `D` with `<b>D</b>`" oColumn6:SetProperty("Def",17/*exCellValueFormat*/,1) oItems := oGrid:Items() h := oItems:AddItem("ParentA") oItems:InsertItem(h,,"Child A") oItems:InsertItem(h,,"Child B") oItems:SetProperty("CellState",h,4,1) oItems:SetProperty("CellBackColor",oItems:InsertItem(h,,"Child C"),5,AutomationTranslateColor( GraMakeRGBColor ( { 0,255,0 } ) , .F. )) oItems:SetProperty("ExpandItem",h,.T.) oItems:AddItem("Item A") h := oItems:AddItem("ParentB") oItems:InsertItem(h,,"Child 1") oItems:InsertItem(h,,"Child 2") oItems:SetProperty("CellBackColor",oItems:InsertItem(h,,"Child 3"),5,AutomationTranslateColor( GraMakeRGBColor ( { 0,255,0 } ) , .F. )) oItems:SetProperty("CellState",h,5,1) oItems:AddItem("Item B") oItems:AddItem("Item C") oItems:AddItem("Item D") oItems:SetProperty("ExpandItem",h,.T.) oGrid:EndUpdate() sFile := "c:/temp/export.html" oGrid:Export(sFile,"vis") oShellBrowserWindow := CreateObject("InternetExplorer.Application") oShellBrowserWindow:Navigate2(sFile) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1075 |
Export Data in CSV format
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5,oColumn6 LOCAL oColumns LOCAL oConditionalFormat,oConditionalFormat1 LOCAL oConditionalFormats LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oGrid:SetProperty("BackColorAlternate",AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. )) oGrid:DrawGridLines := -1/*exAllLines*/ oGrid:HeaderAppearance := 4/*Etched*/ oGrid:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oGrid:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oGrid:Description(11/*exFilterBarAnd*/)),"")) oGrid:FilterBarCaption := "(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` ) + `<r><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))" oGrid:FilterBarPromptVisible := 2579/*exFilterBarCompact+exFilterBarShowCloseIfRequired+exFilterBarSingleLine+exFilterBarVisible+exFilterBarPromptVisible*/ oGrid:FilterBarPromptType := 2/*exFilterPromptContainsAny*/ oConditionalFormats := oGrid:ConditionalFormats() oConditionalFormats:Add("%0 like `*parent*`","parent"):SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor ( { 192,192,192 } ) , .F. )) oConditionalFormat := oConditionalFormats:Add("%0 like `*child*`","child") oConditionalFormat:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,128,128 } ) , .F. )) oConditionalFormat:ApplyTo := 0/*exFormatToColumns*/ oConditionalFormat1 := oConditionalFormats:Add("%0 like `*B*`","b") oConditionalFormat1:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,255 } ) , .F. )) oConditionalFormat1:Bold := .T. oConditionalFormat1:Italic := .T. oConditionalFormat1:ApplyTo := 0/*exFormatToColumns*/ oColumns := oGrid:Columns() oColumn := oColumns:Add("Value") oColumn:Width := 128 oColumn:HTMLCaption := "<b>VA</b><r>sko" oColumn1 := oColumns:Add("APos") oColumn1:FormatColumn := "0 apos ``" oColumn1:AllowSort := .F. oColumn1:SetProperty("Def",4/*exCellBackColor*/,15790320) oColumn1:SetProperty("Def",5/*exCellForeColor*/,8421504) oColumn1:SetProperty("Def",8/*exHeaderForeColor*/,oColumn1:Def(5/*exCellForeColor*/)) oColumn1:Position := 0 oColumn2 := oColumns:Add("RPos") oColumn2:FormatColumn := "0 rpos ``" oColumn2:AllowSort := .F. oColumn2:Position := 1 oColumn3 := oColumns:Add("Index") oColumn3:FormatColumn := "0 index ``" oColumn3:DisplayFilterButton := .T. oColumn3:FilterList := 256/*exShowCheckBox*/ oColumn3:Position := 2 oColumn4 := oColumns:Add("Data 1") oColumn4:FormatColumn := "0 index `A-Z`" oColumn4:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn5 := oColumns:Add("Data 2") oColumn5:FormatColumn := "0 index `AB` replace `A` with `<off -4>A</off>`" oColumn5:SetProperty("Def",16/*exCellSingleLine*/,.F.) oColumn5:SetProperty("Def",17/*exCellValueFormat*/,1) oColumn5:SetProperty("Def",1/*exCellHasRadioButton*/,.T.) oColumn6 := oColumns:Add("Data 3") oColumn6:FormatColumn := "0 index `CDC` replace `D` with `<b>D</b>`" oColumn6:SetProperty("Def",17/*exCellValueFormat*/,1) oItems := oGrid:Items() h := oItems:AddItem("ParentA") oItems:InsertItem(h,,"Child A") oItems:InsertItem(h,,"Child B") oItems:SetProperty("CellState",h,4,1) oItems:SetProperty("CellBackColor",oItems:InsertItem(h,,"Child C"),5,AutomationTranslateColor( GraMakeRGBColor ( { 0,255,0 } ) , .F. )) oItems:SetProperty("ExpandItem",h,.T.) oItems:AddItem("Item A") h := oItems:AddItem("ParentB") oItems:InsertItem(h,,"Child 1") oItems:InsertItem(h,,"Child 2") oItems:SetProperty("CellBackColor",oItems:InsertItem(h,,"Child 3"),5,AutomationTranslateColor( GraMakeRGBColor ( { 0,255,0 } ) , .F. )) oItems:SetProperty("CellState",h,5,1) oItems:AddItem("Item B") oItems:AddItem("Item C") oItems:AddItem("Item D") oItems:SetProperty("ExpandItem",h,.T.) oGrid:EndUpdate() DevOut( Transform(oGrid:Export("","vis"),"") ) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1074 |
Is it possible to check multiple-items at once
PROCEDURE OnAddItem(oGrid,Item) LOCAL oItems LOCAL bHasParent bHasParent := oGrid:FormatABC("value != 0",oGrid:Items:ItemParent(Item)) oItems := oGrid:Items() oItems:SetProperty("CellHasCheckBox",Item,0,.F.) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems LOCAL h,hChild oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:AddItem := {|Item| OnAddItem(oGrid,Item)} /*Occurs after a new Item has been inserted to Items collection.*/ oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oColumn := oGrid:Columns():Add("Tasks") oColumn:SetProperty("Def",17/*exCellValueFormat*/,1) oColumn:FormatColumn := "value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)" oGrid:HeaderVisible := .T. oGrid:SingleSel := .F. oItems := oGrid:Items() h := oItems:AddItem("Project") hChild := oItems:InsertItem(h,,"Task 1") hChild := oItems:InsertItem(h,,"Task 2") hChild := oItems:InsertItem(h,,"Task 3") oItems:SetProperty("ExpandItem",h,.T.) oItems:SetProperty("LockedItemCount",0/*exTop*/,1) oItems:SetProperty("CellValue",oItems:LockedItem(0/*exTop*/,0),0,"<c>Select multiple items and press the <b>SPACE</b> key") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1073 |
How can I get the icon from the cell when using the Items.CellImages property (icon index)
PROCEDURE OnMouseMove(oGrid,Button,Shift,X,Y) LOCAL i i := oGrid:ItemFromPoint(-1,-1,c,hit) DevOut( Transform(oGrid:FormatABC("( 0x44 = ( value bitand 0x44 ) ) ? ( ( (value bitand 0xFFFF0000) bitshift 16 ) array B split `,` ) : `no image`",hit,oGrid:Items:CellImages(i,c)),"") ) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oGrid,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/ oGrid:BeginUpdate() oGrid:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=") oGrid:Columns():Add("Default") oItems := oGrid:Items() oItems:SetProperty("CellImages",oItems:AddItem("Item 1"),0,"3,2,1") oItems:SetProperty("CellImages",oItems:AddItem("Item 2"),0,"2,3") oItems:SetProperty("CellImages",oItems:AddItem("Item 3"),0,"2,") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1072 |
How can I get the icon from the cell when using the Items.CellImages property (icon position within the cell)
PROCEDURE OnMouseMove(oGrid,Button,Shift,X,Y) LOCAL i i := oGrid:ItemFromPoint(-1,-1,c,hit) DevOut( Transform(oGrid:FormatABC("( 0x44 = ( value bitand 0x44 ) ) ? 1 + ( (value bitand 0xFFFF0000) bitshift 16 ) : `no image`",hit),"") ) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oGrid,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/ oGrid:BeginUpdate() oGrid:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=") oGrid:Columns():Add("Default") oItems := oGrid:Items() oItems:SetProperty("CellImages",oItems:AddItem("Item 1"),0,"3,2,1") oItems:SetProperty("CellImages",oItems:AddItem("Item 2"),0,"2,3") oItems:SetProperty("CellImages",oItems:AddItem("Item 3"),0,"2") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1071 |
Is it possible to change the visual appearance of the position signs when user changes the column's position by drag and drop
|
1070 |
How can I add a title column
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oColumns LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:HeaderHeight := 22 oGrid:HeaderAppearance := 4/*Etched*/ oGrid:DrawGridLines := -1/*exAllLines*/ oColumns := oGrid:Columns() oColumns:Add("Col 1") oColumns:Add("Col 2"):FormatColumn := "1 pos ``" oColumns:Add("Col 3"):FormatColumn := "1 pos `A-`" oColumns:Add("Col 4"):FormatColumn := "1 pos `A-Z`" oColumn := oColumns:Add("Title") oColumn:ExpandColumns := "0,1,2,3" oColumn:DisplayExpandButton := .F. oColumn:AllowSort := .F. oColumn:AllowDragging := .F. oColumn:Position := 0 oColumn:HeaderAlignment := 1/*CenterAlignment*/ oGrid:ColumnAutoResize := .F. oItems := oGrid:Items() oItems:AddItem("Item 1") oItems:AddItem("Item 2") oItems:AddItem("Item 3") oItems:AddItem("Item 4") oGrid:EndUpdate() DevOut( Transform(oGrid:Export(""),"") ) oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1069 |
FilterBarCaption ALLUI Keyword ( sample 3, result, leaf )
PROCEDURE OnAddGroupItem(oGrid,Item) LOCAL oItems LOCAL val oItems := oGrid:Items() oItems:SetProperty("ItemBackColor",Item,AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. )) val := oItems:CellValue(Item,oItems:GroupItem(Item)) oItems:SetProperty("CellState",Item,oItems:GroupItem(Item),oGrid:FormatABC("A = `Checked` ? 1 : 0",val)) RETURN PROCEDURE OnAddItem(oGrid,Item) LOCAL i i := oGrid:FormatABC("value + 1",oGrid:Items:ItemToIndex(Item)) oGrid:Items():SetProperty("CellImage",Item,3,i) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5 LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:AddGroupItem := {|Item| OnAddGroupItem(oGrid,Item)} /*Occurs after a new Group Item has been inserted to Items collection.*/ oGrid:AddItem := {|Item| OnAddItem(oGrid,Item)} /*Occurs after a new Item has been inserted to Items collection.*/ oGrid:BeginUpdate() oGrid:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=") oColumn := oGrid:Columns():Add("Col-1") oColumn:DisplayFilterButton := .T. oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn1 := oGrid:Columns():Add("Col-2") oColumn1:DisplayFilterButton := .T. oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn2 := oGrid:Columns():Add("Check") oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn2:DisplayFilterButton := .T. oColumn2:DisplayFilterPattern := .F. oColumn2:FilterType := 6/*exCheck*/ oColumn3 := oGrid:Columns():Add("Image") oColumn3:DisplayFilterButton := .T. oColumn3:FilterType := 10/*exImage*/ oColumn3:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/ oColumn4 := oGrid:Columns():Add("Pos") oColumn4:AllowSizing := .F. oColumn4:AllowSort := .F. oColumn4:Width := 32 oColumn4:FormatColumn := "1 rpos ``" oColumn4:Position := 0 oItems := oGrid:Items() oItems:SetProperty("CellValue",oItems:AddItem("Item A"),1,"Sub-Item A") h := oItems:AddItem("Item B") oItems:SetProperty("CellValue",h,1,"Sub-Item B") oItems:SetProperty("CellState",h,2,1) oItems:SetProperty("CellValue",oItems:AddItem("Item C"),1,"Sub-Item C") oGrid:FilterBarFont := oGrid:Font() oGrid:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oGrid:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oGrid:Description(11/*exFilterBarAnd*/)),"")) oGrid:FilterBarCaption := "(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` ) + `<r><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + leafitemcount + ` result(s)` ) : (`<r><fgcolor=808080>`+ leafitemcount + ` item(s)`) )))" oGrid:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/ oGrid:AllowGroupBy := .T. oGrid:SortBarVisible := .T. oColumn5 := oGrid:Columns:Item(2) oColumn5:FormatColumn := "%CS2 ? `Checked` : `Unchecked`" oColumn5:SortOrder := 1/*SortAscending*/ oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1068 |
A black portion is shown while I am using the BackColorAlternate with EBN colors. What can I do
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1 LOCAL oConditionalFormat LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:ColumnAutoResize := .T. oGrid:DefaultItemHeight := 20 oGrid:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAAEhIDhAxHAxg0HG0Mg4xGI3HMOig3GcJiYAf8jAEhhUnAAyhEqg8hk0oAsIjgAiAwmYxGA4mYzGwwkI0i0ooUnB0IBMIl1Dg8zmYyGolptPkI1mY1GAll9KoUslNIrVCqNQldShFUstXAVfrVcrlZtVhuFnsUHq1zoczoQGhFBkNpg6zbDykUkhsPHE2h85nc9n8xtVDtlex9Msd2p1YstVq9ux8HyMtzuFz1PsNTzQlv2hhWfkuqpeVuN0q+nvEooN5veSAGpkb/ACcZrvhU3w83nM/poxGuchGpoVBvWgg+8knA4WimnFxI45Er5XOlHMg/Q3XU33W4ew9Wyu11mchDagcO7zus8VDoNBBEIKBpMY6DqOQyokhA/IQIQmwMk4bIQFDcoO6LWgwhQkNcABwEyAB5GwWbet6cRQg3DENQ5D8QxADZvEkAB8nabsURGeBpFM3pwE2AEZRpDx/neZpOR3Dz9oO/r/wCMoZNTBQAQR" +; "JSEwYg8HPGhEIoNCaEwq10gQ2WcRt7LcRxRFpuxUAEURQ3sczBEMgTTG8gN7HpOSEAEiQBAQZpmQ0DibPUFwbKcHwkhQoQtNQNzNEMbABOKDy/DMYQzHLeoPL0OTJSUd0pHcxTewk5zrIygIRPslz4lEngBKIAQivgASs/kLSBTlO00f8t0vGcgUbDlDRjXLCUNRERRvRgAHW2oAICA==") oColumn := oGrid:Columns():Add("Default") oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:PartialCheck := .T. oColumn1 := oGrid:Columns():Add("Position") oColumn1:FormatColumn := "1 rindex ``" oColumn1:Visible := .F. oConditionalFormat := oGrid:ConditionalFormats():Add("%C1 mod 2") oConditionalFormat:SetProperty("BackColor",0x1000000) oItems := oGrid:Items() oItems:AddItem("Item 1") oItems:AddItem("Item 2") oItems:AddItem("Item 3") oItems:AddItem("Item 4") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1067 |
How can I specify alternate background colors for each root item, similar with BackColorAlternate
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1 LOCAL oConditionalFormat LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oColumn := oGrid:Columns():Add("Default") oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:PartialCheck := .T. oColumn1 := oGrid:Columns():Add("Position") oColumn1:FormatColumn := "( ( 1:=( ( 0:=(1 rpos '') ) lfind `.`) ) < 0 ? =:0 : (=:0 left =:1) )" oColumn1:Visible := .F. oConditionalFormat := oGrid:ConditionalFormats():Add("%C1 mod 2") oConditionalFormat:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor ( { 240,240,240 } ) , .F. )) oItems := oGrid:Items() h := oItems:AddItem("Root 1") oItems:InsertItem(h,,"Child 1") oItems:InsertItem(h,,"Child 2") oItems:SetProperty("ExpandItem",h,.T.) h := oItems:AddItem("Root 2") oItems:InsertItem(h,,"Child 1") oItems:InsertItem(h,,"Child 2") h := oItems:AddItem("Root 3") oItems:InsertItem(h,,"Child 1") oItems:InsertItem(h,,"Child 2") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1066 |
Is it possible to change the caption from a column without to remove the column and add it with the new caption
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:Columns():Add("ColumnName"):Caption := "NewName" oGrid:Columns():Add("ColumnName"):HTMLCaption := "<b>New</b>Name" oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1065 |
FilterBarCaption ALL Keyword ( sample 2, result )
PROCEDURE OnAddItem(oGrid,Item) LOCAL i i := oGrid:FormatABC("value + 1",oGrid:Items:ItemToIndex(Item)) oGrid:Items():SetProperty("CellImage",Item,3,i) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5 LOCAL oEditor LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:AddItem := {|Item| OnAddItem(oGrid,Item)} /*Occurs after a new Item has been inserted to Items collection.*/ oGrid:BeginUpdate() oGrid:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=") oColumn := oGrid:Columns():Add("Col-1") oColumn:DisplayFilterButton := .T. oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn1 := oGrid:Columns():Add("Col-2") oColumn1:DisplayFilterButton := .T. oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn2 := oGrid:Columns():Add("Check") oEditor := oColumn2:Editor() oEditor:EditType := 19/*CheckValueType*/ oEditor:SetProperty("Option",17/*exCheckValue2*/,1) oColumn2:DisplayFilterButton := .T. oColumn2:DisplayFilterPattern := .F. oColumn2:FilterType := 6/*exCheck*/ oColumn3 := oGrid:Columns():Add("Image") oColumn3:DisplayFilterButton := .T. oColumn3:FilterType := 10/*exImage*/ oColumn3:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/ oColumn4 := oGrid:Columns():Add("Pos") oColumn4:AllowSizing := .F. oColumn4:AllowSort := .F. oColumn4:Width := 32 oColumn4:FormatColumn := "1 apos ``" oColumn4:Position := 0 oItems := oGrid:Items() oItems:SetProperty("CellValue",oItems:AddItem("Item A"),1,"Sub-Item A") h := oItems:AddItem("Item B") oItems:SetProperty("CellValue",h,1,"Sub-Item B") oItems:SetProperty("CellState",h,2,1) oItems:SetProperty("CellValue",oItems:AddItem("Item C"),1,"Sub-Item C") oGrid:FilterBarFont := oGrid:Font() oGrid:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oGrid:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oGrid:Description(11/*exFilterBarAnd*/)),"")) oGrid:FilterBarCaption := "(( ( all replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` ) + `<r><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))" oGrid:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/ oColumn5 := oGrid:Columns:Item(0) oColumn5:FilterType := 240/*exFilter*/ oColumn5:Filter := "Item A|Item B" oGrid:Columns:Item(2):Filter := Transform(1,"") oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1064 |
FilterBarCaption ALL Keyword ( sample 1 )
PROCEDURE OnAddItem(oGrid,Item) LOCAL i i := oGrid:FormatABC("value + 1",oGrid:Items:ItemToIndex(Item)) oGrid:Items():SetProperty("CellImage",Item,3,i) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5 LOCAL oEditor LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:AddItem := {|Item| OnAddItem(oGrid,Item)} /*Occurs after a new Item has been inserted to Items collection.*/ oGrid:BeginUpdate() oGrid:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=") oColumn := oGrid:Columns():Add("Col-1") oColumn:DisplayFilterButton := .T. oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn1 := oGrid:Columns():Add("Col-2") oColumn1:DisplayFilterButton := .T. oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn2 := oGrid:Columns():Add("Check") oEditor := oColumn2:Editor() oEditor:EditType := 19/*CheckValueType*/ oEditor:SetProperty("Option",17/*exCheckValue2*/,1) oColumn2:DisplayFilterButton := .T. oColumn2:DisplayFilterPattern := .F. oColumn2:FilterType := 6/*exCheck*/ oColumn3 := oGrid:Columns():Add("Image") oColumn3:DisplayFilterButton := .T. oColumn3:FilterType := 10/*exImage*/ oColumn3:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/ oColumn4 := oGrid:Columns():Add("Pos") oColumn4:AllowSizing := .F. oColumn4:AllowSort := .F. oColumn4:Width := 32 oColumn4:FormatColumn := "1 apos ``" oColumn4:Position := 0 oItems := oGrid:Items() oItems:SetProperty("CellValue",oItems:AddItem("Item A"),1,"Sub-Item A") h := oItems:AddItem("Item B") oItems:SetProperty("CellValue",h,1,"Sub-Item B") oItems:SetProperty("CellState",h,2,1) oItems:SetProperty("CellValue",oItems:AddItem("Item C"),1,"Sub-Item C") oGrid:FilterBarFont := oGrid:Font() oGrid:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oGrid:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oGrid:Description(11/*exFilterBarAnd*/)),"")) oGrid:FilterBarCaption := "all" oGrid:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/ oColumn5 := oGrid:Columns:Item(0) oColumn5:FilterType := 240/*exFilter*/ oColumn5:Filter := "Item A|Item B" oGrid:Columns:Item(2):Filter := Transform(1,"") oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1063 |
FilterBarCaption ALLUI Keyword ( sample 2, result )
PROCEDURE OnAddItem(oGrid,Item) LOCAL i i := oGrid:FormatABC("value + 1",oGrid:Items:ItemToIndex(Item)) oGrid:Items():SetProperty("CellImage",Item,3,i) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5 LOCAL oEditor LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:AddItem := {|Item| OnAddItem(oGrid,Item)} /*Occurs after a new Item has been inserted to Items collection.*/ oGrid:BeginUpdate() oGrid:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=") oColumn := oGrid:Columns():Add("Col-1") oColumn:DisplayFilterButton := .T. oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn1 := oGrid:Columns():Add("Col-2") oColumn1:DisplayFilterButton := .T. oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn2 := oGrid:Columns():Add("Check") oEditor := oColumn2:Editor() oEditor:EditType := 19/*CheckValueType*/ oEditor:SetProperty("Option",17/*exCheckValue2*/,1) oColumn2:DisplayFilterButton := .T. oColumn2:DisplayFilterPattern := .F. oColumn2:FilterType := 6/*exCheck*/ oColumn3 := oGrid:Columns():Add("Image") oColumn3:DisplayFilterButton := .T. oColumn3:FilterType := 10/*exImage*/ oColumn3:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/ oColumn4 := oGrid:Columns():Add("Pos") oColumn4:AllowSizing := .F. oColumn4:AllowSort := .F. oColumn4:Width := 32 oColumn4:FormatColumn := "1 apos ``" oColumn4:Position := 0 oItems := oGrid:Items() oItems:SetProperty("CellValue",oItems:AddItem("Item A"),1,"Sub-Item A") h := oItems:AddItem("Item B") oItems:SetProperty("CellValue",h,1,"Sub-Item B") oItems:SetProperty("CellState",h,2,1) oItems:SetProperty("CellValue",oItems:AddItem("Item C"),1,"Sub-Item C") oGrid:FilterBarFont := oGrid:Font() oGrid:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oGrid:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oGrid:Description(11/*exFilterBarAnd*/)),"")) oGrid:FilterBarCaption := "(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` ) + `<r><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))" oGrid:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/ oColumn5 := oGrid:Columns:Item(0) oColumn5:FilterType := 240/*exFilter*/ oColumn5:Filter := "Item A|Item B" oGrid:Columns:Item(2):Filter := Transform(1,"") oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1062 |
FilterBarCaption ALLUI Keyword ( sample 1 )
PROCEDURE OnAddItem(oGrid,Item) LOCAL i i := oGrid:FormatABC("value + 1",oGrid:Items:ItemToIndex(Item)) oGrid:Items():SetProperty("CellImage",Item,3,i) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5 LOCAL oEditor LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:AddItem := {|Item| OnAddItem(oGrid,Item)} /*Occurs after a new Item has been inserted to Items collection.*/ oGrid:BeginUpdate() oGrid:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=") oColumn := oGrid:Columns():Add("Col-1") oColumn:DisplayFilterButton := .T. oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn1 := oGrid:Columns():Add("Col-2") oColumn1:DisplayFilterButton := .T. oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn2 := oGrid:Columns():Add("Check") oEditor := oColumn2:Editor() oEditor:EditType := 19/*CheckValueType*/ oEditor:SetProperty("Option",17/*exCheckValue2*/,1) oColumn2:DisplayFilterButton := .T. oColumn2:DisplayFilterPattern := .F. oColumn2:FilterType := 6/*exCheck*/ oColumn3 := oGrid:Columns():Add("Image") oColumn3:DisplayFilterButton := .T. oColumn3:FilterType := 10/*exImage*/ oColumn3:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/ oColumn4 := oGrid:Columns():Add("Pos") oColumn4:AllowSizing := .F. oColumn4:AllowSort := .F. oColumn4:Width := 32 oColumn4:FormatColumn := "1 apos ``" oColumn4:Position := 0 oItems := oGrid:Items() oItems:SetProperty("CellValue",oItems:AddItem("Item A"),1,"Sub-Item A") h := oItems:AddItem("Item B") oItems:SetProperty("CellValue",h,1,"Sub-Item B") oItems:SetProperty("CellState",h,2,1) oItems:SetProperty("CellValue",oItems:AddItem("Item C"),1,"Sub-Item C") oGrid:FilterBarFont := oGrid:Font() oGrid:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oGrid:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oGrid:Description(11/*exFilterBarAnd*/)),"")) oGrid:FilterBarCaption := "allui" oGrid:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/ oColumn5 := oGrid:Columns:Item(0) oColumn5:FilterType := 240/*exFilter*/ oColumn5:Filter := "Item A|Item B" oGrid:Columns:Item(2):Filter := Transform(1,"") oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1061 |
FilterBarCaption AVAILABLE Keyword ( sample 2, result )
PROCEDURE OnAddItem(oGrid,Item) LOCAL i i := oGrid:FormatABC("value + 1",oGrid:Items:ItemToIndex(Item)) oGrid:Items():SetProperty("CellImage",Item,3,i) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5 LOCAL oEditor LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:AddItem := {|Item| OnAddItem(oGrid,Item)} /*Occurs after a new Item has been inserted to Items collection.*/ oGrid:BeginUpdate() oGrid:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=") oColumn := oGrid:Columns():Add("Col-1") oColumn:DisplayFilterButton := .T. oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn1 := oGrid:Columns():Add("Col-2") oColumn1:DisplayFilterButton := .T. oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn2 := oGrid:Columns():Add("Check") oEditor := oColumn2:Editor() oEditor:EditType := 19/*CheckValueType*/ oEditor:SetProperty("Option",17/*exCheckValue2*/,1) oColumn2:DisplayFilterButton := .T. oColumn2:DisplayFilterPattern := .F. oColumn2:FilterType := 6/*exCheck*/ oColumn3 := oGrid:Columns():Add("Image") oColumn3:DisplayFilterButton := .T. oColumn3:FilterType := 10/*exImage*/ oColumn3:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/ oColumn4 := oGrid:Columns():Add("Pos") oColumn4:AllowSizing := .F. oColumn4:AllowSort := .F. oColumn4:Width := 32 oColumn4:FormatColumn := "1 apos ``" oColumn4:Position := 0 oItems := oGrid:Items() oItems:SetProperty("CellValue",oItems:AddItem("Item A"),1,"Sub-Item A") h := oItems:AddItem("Item B") oItems:SetProperty("CellValue",h,1,"Sub-Item B") oItems:SetProperty("CellState",h,2,1) oItems:SetProperty("CellValue",oItems:AddItem("Item C"),1,"Sub-Item C") oGrid:FilterBarFont := oGrid:Font() oGrid:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oGrid:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oGrid:Description(11/*exFilterBarAnd*/)),"")) oGrid:FilterBarCaption := "(( ( value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` ) + ` ` + ( available replace `[` with `<bgcolor=C0C0C0><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` replace `<s>` with `` replace `</s>` with `` ) + `<fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))" oGrid:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/ oColumn5 := oGrid:Columns:Item(0) oColumn5:FilterType := 240/*exFilter*/ oColumn5:Filter := "Item A|Item B" oGrid:Columns:Item(2):Filter := Transform(1,"") oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1060 |
FilterBarCaption AVAILABLE Keyword ( sample 1 )
PROCEDURE OnAddItem(oGrid,Item) LOCAL i i := oGrid:FormatABC("value + 1",oGrid:Items:ItemToIndex(Item)) oGrid:Items():SetProperty("CellImage",Item,3,i) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4,oColumn5 LOCAL oEditor LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:AddItem := {|Item| OnAddItem(oGrid,Item)} /*Occurs after a new Item has been inserted to Items collection.*/ oGrid:BeginUpdate() oGrid:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=") oColumn := oGrid:Columns():Add("Col-1") oColumn:DisplayFilterButton := .T. oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn1 := oGrid:Columns():Add("Col-2") oColumn1:DisplayFilterButton := .T. oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn2 := oGrid:Columns():Add("Check") oEditor := oColumn2:Editor() oEditor:EditType := 19/*CheckValueType*/ oEditor:SetProperty("Option",17/*exCheckValue2*/,1) oColumn2:DisplayFilterButton := .T. oColumn2:DisplayFilterPattern := .F. oColumn2:FilterType := 6/*exCheck*/ oColumn3 := oGrid:Columns():Add("Image") oColumn3:DisplayFilterButton := .T. oColumn3:FilterType := 10/*exImage*/ oColumn3:FilterList := 9472/*exShowExclude+exShowFocusItem+exShowCheckBox*/ oColumn4 := oGrid:Columns():Add("Pos") oColumn4:AllowSizing := .F. oColumn4:AllowSort := .F. oColumn4:Width := 32 oColumn4:FormatColumn := "1 apos ``" oColumn4:Position := 0 oItems := oGrid:Items() oItems:SetProperty("CellValue",oItems:AddItem("Item A"),1,"Sub-Item A") h := oItems:AddItem("Item B") oItems:SetProperty("CellValue",h,1,"Sub-Item B") oItems:SetProperty("CellState",h,2,1) oItems:SetProperty("CellValue",oItems:AddItem("Item C"),1,"Sub-Item C") oGrid:FilterBarFont := oGrid:Font() oGrid:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oGrid:FormatABC("`<fgcolor=808080> ` + value + ` </fgcolor>`",oGrid:Description(11/*exFilterBarAnd*/)),"")) oGrid:FilterBarCaption := "value + ` ` + available" oGrid:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/ oColumn5 := oGrid:Columns:Item(0) oColumn5:FilterType := 240/*exFilter*/ oColumn5:Filter := "Item A|Item B" oGrid:Columns:Item(2):Filter := Transform(1,"") oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1059 |
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 3, results )
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oColumn := oGrid:Columns():Add("Col-1") oColumn:DisplayFilterButton := .T. oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn1 := oGrid:Columns():Add("Col-2") oColumn1:DisplayFilterButton := .T. oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn2 := oGrid:Columns():Add("Pos") oColumn2:AllowSizing := .F. oColumn2:AllowSort := .F. oColumn2:Width := 32 oColumn2:FormatColumn := "1 apos ``" oColumn2:Position := 0 oItems := oGrid:Items() oItems:SetProperty("CellValue",oItems:AddItem("Item A"),1,"Sub-Item A") oItems:SetProperty("CellValue",oItems:AddItem("Item B"),1,"Sub-Item B") oItems:SetProperty("CellValue",oItems:AddItem("Item C"),1,"Sub-Item C") oGrid:FilterBarFont := oGrid:Font() oGrid:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oGrid:FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",oGrid:Description(11/*exFilterBarAnd*/)),"")) oGrid:FilterBarCaption := "(`<b>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )) replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>`" oGrid:FilterBarPromptVisible := 256/*exFilterBarToggle*/ oColumn3 := oGrid:Columns:Item(0) oColumn3:FilterType := 240/*exFilter*/ oColumn3:Filter := "Item A|Item B" oColumn4 := oGrid:Columns:Item(1) oColumn4:FilterType := 3/*exPattern*/ oColumn4:Filter := "*B" oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1058 |
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 2 )
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oColumn := oGrid:Columns():Add("Col-1") oColumn:DisplayFilterButton := .T. oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn1 := oGrid:Columns():Add("Col-2") oColumn1:DisplayFilterButton := .T. oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn2 := oGrid:Columns():Add("Pos") oColumn2:AllowSizing := .F. oColumn2:AllowSort := .F. oColumn2:Width := 32 oColumn2:FormatColumn := "1 apos ``" oColumn2:Position := 0 oItems := oGrid:Items() oItems:SetProperty("CellValue",oItems:AddItem("Item A"),1,"Sub-Item A") oItems:SetProperty("CellValue",oItems:AddItem("Item B"),1,"Sub-Item B") oItems:SetProperty("CellValue",oItems:AddItem("Item C"),1,"Sub-Item C") oGrid:FilterBarFont := oGrid:Font() oGrid:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oGrid:FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",oGrid:Description(11/*exFilterBarAnd*/)),"")) oGrid:FilterBarCaption := "value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>`" oGrid:FilterBarPromptVisible := 256/*exFilterBarToggle*/ oColumn3 := oGrid:Columns:Item(0) oColumn3:FilterType := 240/*exFilter*/ oColumn3:Filter := "Item A|Item B" oColumn4 := oGrid:Columns:Item(1) oColumn4:FilterType := 3/*exPattern*/ oColumn4:Filter := "*B" oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1057 |
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 1 )
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2,oColumn3,oColumn4 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oColumn := oGrid:Columns():Add("Col-1") oColumn:DisplayFilterButton := .T. oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn1 := oGrid:Columns():Add("Col-2") oColumn1:DisplayFilterButton := .T. oColumn1:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn2 := oGrid:Columns():Add("Pos") oColumn2:AllowSizing := .F. oColumn2:AllowSort := .F. oColumn2:Width := 32 oColumn2:FormatColumn := "1 apos ``" oColumn2:Position := 0 oItems := oGrid:Items() oItems:SetProperty("CellValue",oItems:AddItem("Item A"),1,"Sub-Item A") oItems:SetProperty("CellValue",oItems:AddItem("Item B"),1,"Sub-Item B") oItems:SetProperty("CellValue",oItems:AddItem("Item C"),1,"Sub-Item C") oGrid:SetProperty("Description",11/*exFilterBarAnd*/,Transform(oGrid:FormatABC("`<fgcolor=808080>` + value + `</fgcolor>`",oGrid:Description(11/*exFilterBarAnd*/)),"")) oGrid:FilterBarCaption := "value replace `[` with `<fgcolor=808080>[` replace `]` with `]</fgcolor>`" oGrid:FilterBarPromptVisible := 256/*exFilterBarToggle*/ oColumn3 := oGrid:Columns:Item(0) oColumn3:FilterType := 240/*exFilter*/ oColumn3:Filter := "Item A|Item B" oColumn4 := oGrid:Columns:Item(1) oColumn4:FilterType := 3/*exPattern*/ oColumn4:Filter := "*B" oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1056 |
Is it possible to automatically displays the control's filter label to the right
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oColumn := oGrid:Columns():Add("Item") oColumn:DisplayFilterButton := .T. oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn1 := oGrid:Columns():Add("Pos") oColumn1:AllowSizing := .F. oColumn1:AllowSort := .F. oColumn1:Width := 32 oColumn1:FormatColumn := "1 apos ``" oColumn1:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarCaption := "`<r>` + value" oGrid:FilterBarPromptVisible := 1280/*exFilterBarShowCloseOnRight+exFilterBarToggle*/ oColumn2 := oGrid:Columns:Item(0) oColumn2:FilterType := 240/*exFilter*/ oColumn2:Filter := "Item B" oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1055 |
How can I get the number of results/items being shown in the control's filter bar (sample 4)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oColumn := oGrid:Columns():Add("Item") oColumn:DisplayFilterButton := .T. oColumn:FilterList := 9504/*exShowExclude+exShowFocusItem+exShowCheckBox+exSortItemsAsc*/ oColumn1 := oGrid:Columns():Add("Pos") oColumn1:AllowSizing := .F. oColumn1:AllowSort := .F. oColumn1:Width := 32 oColumn1:FormatColumn := "1 apos ``" oColumn1:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarFont := oGrid:Font() oGrid:FilterBarPrompt := Transform(oGrid:FormatABC("`<b>` + value",oGrid:FilterBarPrompt()),"") oGrid:FilterBarCaption := "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )" oGrid:FilterBarPromptVisible := 3591/*exFilterBarCompact+exFilterBarShowCloseOnRight+exFilterBarShowCloseIfRequired+exFilterBarCaptionVisible+exFilterBarVisible+exFilterBarPromptVisible*/ oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1054 |
How can I get the number of results being shown in the control's filter bar (sample 3)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarFont := oGrid:Font() oGrid:FilterBarCaption := "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : ``)" oGrid:FilterBarPromptVisible := 2055/*exFilterBarCompact+exFilterBarCaptionVisible+exFilterBarVisible+exFilterBarPromptVisible*/ oColumn1 := oGrid:Columns:Item(0) oColumn1:FilterType := 240/*exFilter*/ oColumn1:Filter := "Item A|Item B" oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1053 |
How can I get the number of results being shown in the control's filter bar (sample 2, compact)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarFont := oGrid:Font() oGrid:FilterBarCaption := "`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? `<off -4> ` + abs(matchitemcount + 1) + ` result(s)` : ``)" oGrid:FilterBarPromptVisible := 2071/*exFilterBarCompact+exFilterBarSingleLine+exFilterBarCaptionVisible+exFilterBarVisible+exFilterBarPromptVisible*/ oColumn1 := oGrid:Columns:Item(0) oColumn1:FilterType := 240/*exFilter*/ oColumn1:Filter := "Item A|Item B" oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1052 |
How can I get the number of results being shown in the control's filter bar (sample 1)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarFont := oGrid:Font() oGrid:FilterBarCaption := "`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)" oGrid:FilterBarPromptVisible := 7/*exFilterBarCaptionVisible+exFilterBarVisible+exFilterBarPromptVisible*/ oColumn1 := oGrid:Columns:Item(0) oColumn1:FilterType := 240/*exFilter*/ oColumn1:Filter := "Item A|Item B" oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1051 |
FilterBarCaption Predefined Keywords
PROCEDURE OnAfterExpandItem(oGrid,Item) oGrid:Refresh() RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2 LOCAL oEditor LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:AfterExpandItem := {|Item| OnAfterExpandItem(oGrid,Item)} /*Fired after an item is expanded (collapsed).*/ oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Check") oEditor := oColumn:Editor() oEditor:EditType := 19/*CheckValueType*/ oEditor:SetProperty("Option",17/*exCheckValue2*/,1) oColumn:DisplayFilterButton := .T. oColumn:DisplayFilterPattern := .F. oColumn:FilterType := 6/*exCheck*/ oColumn1 := oGrid:Columns():Add("Pos") oColumn1:AllowSizing := .F. oColumn1:AllowSort := .F. oColumn1:Width := 32 oColumn1:FormatColumn := "1 apos ``" oColumn1:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") h := oItems:AddItem("Item B") oItems:SetProperty("CellState",oItems:InsertItem(h,,"Sub-Item B1"),1,1) oItems:InsertItem(h,,"Sub-Item B2") oItems:SetProperty("ExpandItem",h,.T.) oItems:AddItem("Item C") oGrid:FilterInclude := 1/*exItemsWithChilds*/ oGrid:FilterBarFont := oGrid:Font() oGrid:FilterBarCaption := "`<fgcolor=0000FF><i>value/current</i></fgcolor>: <fgcolor=808080>` + value + `</fgcolor>` + `<br><fgcolor=0000FF><i>available</i></fgcolor>: ` + available + `<br><fgcolor=0000FF><i>allui</i></fgcolor>: ` + allui + `<br><fgcolor=0000FF><i>all</i></fgcolor>: ` + all + `<br><fgcolor=0000FF><i>itemcount</i></fgcolor>: <fgcolor=808080>` + itemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>visibleitemcount</i></fgcolor>: <fgcolor=808080>` + visibleitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>matchitemcount</" +; "i></fgcolor>: <fgcolor=808080>` + matchitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>promptpattern</i></fgcolor>: <fgcolor=808080>` + promptpattern + `</fgcolor>`+ `<br><fgcolor=0000FF><i>leafitemcount</i></fgcolor>: <fgcolor=808080>` + leafitemcount + `</fgcolor>`" oGrid:FilterBarPromptPattern := "B" oGrid:FilterBarPromptVisible := 7/*exFilterBarCaptionVisible+exFilterBarVisible+exFilterBarPromptVisible*/ oColumn2 := oGrid:Columns:Item(0) oColumn2:FilterType := 240/*exFilter*/ oColumn2:Filter := "Item A|Item B" oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1050 |
I am using filter prompt feature, and also column's filter, just wondering if possible to compact displaying the filter bar so it won't show on multiple lines
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarFont := oGrid:Font() oGrid:FilterBarCaption := "`<r><i><fgcolor=808080><upline><solidline><sha ;;0>` + value" oGrid:FilterBarPromptPattern := "B" oGrid:FilterBarPromptVisible := 2067/*exFilterBarCompact+exFilterBarSingleLine+exFilterBarVisible+exFilterBarPromptVisible*/ oColumn1 := oGrid:Columns:Item(0) oColumn1:FilterType := 240/*exFilter*/ oColumn1:Filter := "Item A|Item B" oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1049 |
Just wondering if it is possible to show the filter bar's close button on the right ( sample 2 )
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarPromptVisible := 1281/*exFilterBarShowCloseOnRight+exFilterBarToggle+exFilterBarPromptVisible*/ oGrid:FilterBarPrompt := Transform(oGrid:FormatABC("`<r>` + value",oGrid:FilterBarPrompt()),"") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1048 |
Just wondering if it is possible to show the filter bar's close button on the right ( sample 1 )
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:RightToLeft := .T. oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarPromptVisible := 257/*exFilterBarToggle+exFilterBarPromptVisible*/ oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1047 |
How can I change the visual appearance of the filter bar's close button (EBN)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oAppearance LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oAppearance := oGrid:VisualAppearance() oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABHQDg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLOg7IJjyI4/SJAYCydKAWhxIaZKJHCZoEDaTAADCNVAQp6MEIJVbVEI0e79OgBLp/Z7kECIJJAaRjHQdJxGLA8EhtCQhCZteK6SgMKJYXhWQYRXI1JwvMBrWrdQjiOYELQtMKmSZNLYGG4dR5SVJbcYhSYsRRFMoyDIOXYDLKsdYqSpXIThObEGgaPqJYjsUjCMKnR7HVIURrBPC9TBPE69ZgmC6ucKPX51ShKFaBWDZcwFAS+UBuYCAILiEAQGZ1XT8OROicbgJgSTJRlCaZeDsHY7QGR4xkSYp3CaExZAQMgalQYAwjCAAfBANxcA2TgKAUOpDCGFhKg0RpXCwCwDHQHQHEyAIkCkOhbFOGA8A8DohBgRg9AccZcn8EpEjMLI2C2" +; "DYxAgQgvAIUIVkoAAPBQDJlECTZ3CCYwDACQwUA8A5MCAWAWDiQi4l8aQOEgLJuBgBgDmYFAzEoIoIl0WALgKYJbBABADAAHgHg8VAMmqCQQDMXABAATYwTmNwBDATJXAiAgjHmNQ5lgQ5QEQEQMmcWg/GwD5ylyNw2gMcJcjsBgBgOQQDDhRpVAMMwnDBFw1B0Ax8D0DxOmmJJIGQTY5hGMAwkwM4CAYLZAmAOJnAqAojiIGg6iieYkmeAYOHaKJDCyCwjH6AoggsQpQliAJLhgaJ0CESBTnyDwjk+cg4g4P5IHIHJ+BWRRzlYWAxiOUxihsY4KjKLJRGqC44FCegkkkM58iAKAPnIWIWD8SRSFSfQnkmewUhYP4GiGKJ7G0TIbCSUoggqUo0lAQ4LnEcBcD8Coiiif4nE+eAAn2HpOkcFJqi4T5SkyMw/kqQown8IBIBOdA+A+DJrBqVxXEqYo4lCApLhGHBnD8S4ymyfxmg+cwQkQP5egOUZIWoEA" +; "kjIeIPBMBJBD+TBjBifwvkuc58hQJQPmFrYykkchclSApKjGOBuD+TRDFCfw3mmIxNi8FxFlOXhVC4aYDFyPgvg2YBcBcLZGCGCJ0DSLRzGSWQ/lmY5+mEP5gmMDBZRSMRsFsOxMhMJJ/DsTpTnwaQaE+N5ojuNhdEYNI5C4TZJO1GRDmCaxnA2Yx4n8IpIjOTBQBQC5TgyYw7gUYRYikC0BYRwsDQBoB8eA6Q2hsE0BUXgywZtYCyHMKwnxSAhAQHkIQhRrBaDsCwA4ERiB2EWAIYIXhhiVEgAEUYwwYjyASLge4FhHgRDkM8OQih0jWPkGgBBAQ") oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarPromptVisible := 257/*exFilterBarToggle+exFilterBarPromptVisible*/ oGrid:SetProperty("Background",1/*exFooterFilterBarButton*/,0x1000000) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1046 |
How can I change the visual appearance of the filter bar's close button (solid)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarPromptVisible := 1/*exFilterBarPromptVisible*/ oGrid:SetProperty("Background",1/*exFooterFilterBarButton*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,0,0 } ) , .F. )) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1045 |
Is it possible to prevent definitely showing the filter bar's close button
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarPromptVisible := 1/*exFilterBarPromptVisible*/ oGrid:SetProperty("Background",1/*exFooterFilterBarButton*/,-1) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1044 |
Is it possible to show the close button only if there is a filter applied
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarPromptVisible := 513/*exFilterBarShowCloseIfRequired+exFilterBarPromptVisible*/ oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1043 |
The control's filter bar is not closed once I click the close button (toggle)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1 LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oItems:SetProperty("LockedItemCount",2/*exBottom*/,1) h := oItems:LockedItem(2/*exBottom*/,0) oItems:SetProperty("ItemDivider",h,0) oItems:SetProperty("CellValue",h,0,"<c><fgcolor=808080>Press the CTRL + F to turn on/off the control's filter bar. ALT + Up/Down moves the focus.") oItems:SetProperty("CellValueFormat",h,0,1/*exHTML*/) oGrid:FilterBarCaption := "`<r><fgcolor=808080>` + value" oGrid:FilterBarPromptPattern := "B" oGrid:FilterBarPromptVisible := 2323/*exFilterBarCompact+exFilterBarToggle+exFilterBarSingleLine+exFilterBarVisible+exFilterBarPromptVisible*/ oColumn1 := oGrid:Columns:Item(0) oColumn1:FilterType := 240/*exFilter*/ oColumn1:Filter := "Item B" oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1042 |
How can I display the control's filter on a single line
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarCaption := "len(value) ? `filter for: <fgcolor 808080>` + value : `<fgcolor 808080>no filter`" oGrid:FilterBarPromptVisible := 18/*exFilterBarSingleLine+exFilterBarVisible*/ oColumn1 := oGrid:Columns:Item(0) oColumn1:FilterType := 240/*exFilter*/ oColumn1:Filter := "Item A|Item B" oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1041 |
How can I display the control's filter on a single line (prompt-combined)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarCaption := "`<r>` + value" oGrid:FilterBarPromptVisible := 2067/*exFilterBarCompact+exFilterBarSingleLine+exFilterBarVisible+exFilterBarPromptVisible*/ oColumn1 := oGrid:Columns:Item(0) oColumn1:FilterType := 240/*exFilter*/ oColumn1:Filter := "Item A|Item B" oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1040 |
How can I get the number of results after a filter is applied
PROCEDURE OnClick(oGrid) oGrid:ClearFilter() RETURN PROCEDURE OnFilterChange(oGrid) DevOut( "Items.MatchItemCount" ) DevOut( Transform(oGrid:Items:MatchItemCount(),"") ) DevOut( Transform(oGrid:FormatABC("value < 0 ? `filter applied: ` + abs(value + 1) + ` result(s)` : `no filter`",oGrid:Items:MatchItemCount()),"") ) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:Click := {|| OnClick(oGrid)} /*Occurs when the user presses and then releases the left mouse button over the grid control.*/ oGrid:FilterChange := {|| OnFilterChange(oGrid)} /*Occurs when filter was changed.*/ oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarPromptVisible := 1/*exFilterBarPromptVisible*/ oGrid:FilterBarPromptPattern := "Item" oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1039 |
How can I programmatically clear the control's filter
PROCEDURE OnClick(oGrid) oGrid:ClearFilter() RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:Click := {|| OnClick(oGrid)} /*Occurs when the user presses and then releases the left mouse button over the grid control.*/ oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarPromptVisible := 1/*exFilterBarPromptVisible*/ oGrid:FilterBarPromptPattern := "B" oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1038 |
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt-combined)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarPromptPattern := "B" oGrid:FilterBarPromptVisible := 3/*exFilterBarVisible+exFilterBarPromptVisible*/ oColumn1 := oGrid:Columns:Item(0) oColumn1:FilterType := 240/*exFilter*/ oColumn1:Filter := "Item B" oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1037 |
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarPromptVisible := 1/*exFilterBarPromptVisible*/ oGrid:FilterBarPromptPattern := "B" oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1036 |
Is it possible to prevent closing the control's filter bar, so it is always shown
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1 LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Item"):DisplayFilterButton := .T. oColumn := oGrid:Columns():Add("Pos") oColumn:AllowSizing := .F. oColumn:AllowSort := .F. oColumn:Width := 32 oColumn:FormatColumn := "1 apos ``" oColumn:Position := 0 oItems := oGrid:Items() oItems:AddItem("Item A") oItems:AddItem("Item B") oItems:AddItem("Item C") oGrid:FilterBarCaption := "len(value) = 0 ? `<fgcolor=808080>no filter` : value" oGrid:FilterBarPromptVisible := 2/*exFilterBarVisible*/ oColumn1 := oGrid:Columns:Item(0) oColumn1:FilterType := 240/*exFilter*/ oColumn1:Filter := "Item B" oGrid:ApplyFilter() oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1035 |
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 4)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oGrid:VisualDesign := "gBFLBWIgBAEHhEJAEGg6VAkHeLpgwChAOhULB8XAUUg8MAAREEHGMcgRCJ0ei8dhABDEcQAAYAQGKIYBkAKBQAGaAoDDMOQwQwAAxjGKEEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBRWAkEwiBiEQTjea5CgOIAFS7LIqjRQEBxhIaZYIGaiQADENo9TxIMZAfBIHShK6NJABCCSQKkYx0HScRijDIEFwGIQmbKiej4DCiCQQW7OYYRVCNMQSfa8HivJyrcamfp/YBgOBYHb1eLVPR5LwfPCGUw1P6PLxkORZHimK4tSLHV7xVpMIwZFafIQhCCoHomS5NU7UNR0TQUFx9FaGX7rDDsGwLAJ6XRgF4bg2VpnHePpenAN4bH2GwHFmApSjEGBLnWOpRGOTBZHOegrE6BxPiWVJqCweQrn0LgJAWJBjwgaw1gKO5HmWch5h+fovF+G5bmich4BgfZkB8dynRUVYqiUR5rnmex/F6" +; "N4tn2AJfnebZ3DEXw3HWXgzAyIwgicKJKBKEIhCeCgiHyHYFEmSAFmqBghFIdgSCeIJygYDAyAgJx6AoIINAMOJNCgCZCGoGoLmMCI+CwJoihMNglCCIhzFCUg0EmMhghWDBkAiQg9CUY4jEYN4Jk2IxklYJoJHIUg+CSZJSESFwkkkGI+FOFIJEIRhPhMCRJCSVoRrSBhiDgTZjHYT4PEkYhwhgJYm0SaIaiaSYuE+GQNlmCIBGCJxjhiZQ5AkMhAg6ExJCkPhPguaAiFYUAlAkKZ0g6HoOEmWR/GHcA4m0OwIlIJIHCRgQshGJhpjoaocieaZiC6GAimkUgehIOwnGYGYIGkah6jaE4rg6SpCjKK5rEOMYlGIGIihKOggloFoqj6L5aGaBo6CkGIkAQjiPpCAAaJILCTJQlKPACDaXJgmSaJsnCdJ4nygKEoijKQpSmKcqCpKoqysK0rivLAsSyLMtC1LYty4Lkui7LwvS+L8wDBMIwzEMUxjHMgyT" +; "KMszDNM4zzQNE0jTNQ1TWNc2DZNo2zcN03jfOA4TiOM5DlOY5zoOk6jrOw7TuO88DxPI8z0PU9j3Pg+T6Ps/D9P4/0AQFAkDQRBUGQdCEJQpC0MQ1DkPRBEUSRNFEVBhFkXRhGQ9D6Dxfh+W5gGGd4QH2XQjCmDpFFaKoVB+D5Xmed5+H8YAHnIAh9EwV5Fl0d4MkMKJICmSgygSJAoEmMUCIPgnDCCIOQFYCxJjwFoCcA4kxoF+AIJkAgExegDEgEYQInAzCUAIOEGgfxiiRDYF1Q4EQ2BSCaEQYwbAiKREMpRSymFNDIAkAxT6oVRgSA2qdVKq1WqvVirMZQUhSCnBUMoIgoQRgnGSIQUgkg1hIHYAkAYMROAmHiLsE4xxSCxBwEwCQ0wmDdBsE0GYXBtg2CSPMFIuwYiQBYBQeAcwOCnBCCZgw0g0glBONAQgqQThCGgPQGoBQfiRGmOEZIPAXjsBoPAO4HRThhA0EQSA5BAgaCKJIGg3QdhOCmNU" +; "BoQAijTCIF0FwQxpCHDIPAYYMQGgtCmFcaQtRAjZCyFYSojQ2B2BoKwIYFApBXEIBsIQ1QsAWAWEwaA1xCgjAoIAQBAQ=" oGrid:Columns():Add("Column") oItems := oGrid:Items() h := oItems:AddItem("Root 1") oItems:InsertItem(h,,"Child 1") oItems:InsertItem(h,,"Child 2") oItems:SetProperty("ExpandItem",h,.T.) h := oItems:AddItem("Root 2") oItems:InsertItem(h,,"Child") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1034 |
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 3)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oAppearance LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oAppearance := oGrid:VisualAppearance() oAppearance:Add(3,"gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSBcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfDxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5Jlg" +; "XIcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRgwZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMINCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=") oAppearance:Add(1,"CP:3 -2 -2 2 2") oAppearance:Add(4,"gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSBcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfDxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCE" +; "eBkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOFSFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJtDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=") oAppearance:Add(2,"CP:4 -2 -2 2 2") oGrid:LinesAtRoot := 1/*exGroupLinesAtRoot*/ oGrid:HasButtons := 4/*exCustom*/ oGrid:SetProperty("HasButtonsCustom",.F.,16777216) oGrid:SetProperty("HasButtonsCustom",.T.,33554432) oGrid:Columns():Add("Column") oItems := oGrid:Items() h := oItems:AddItem("Root 1") oItems:InsertItem(h,,"Child 1") oItems:InsertItem(h,,"Child 2") oItems:SetProperty("ExpandItem",h,.T.) h := oItems:AddItem("Root 2") oItems:InsertItem(h,,"Child") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1033 |
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 2)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oAppearance LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oAppearance := oGrid:VisualAppearance() oAppearance:Add(1,"XP:TREEVIEW 2 1") oAppearance:Add(2,"XP:TREEVIEW 2 2") oGrid:SetProperty("Background",180/*exTreeGlyphOpen*/,0x1000000) oGrid:SetProperty("Background",181/*exTreeGlyphClose*/,0x2000000) oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oGrid:Columns():Add("Column") oItems := oGrid:Items() h := oItems:AddItem("Root 1") oItems:InsertItem(h,,"Child 1") oItems:InsertItem(h,,"Child 2") oItems:SetProperty("ExpandItem",h,.T.) h := oItems:AddItem("Root 2") oItems:InsertItem(h,,"Child") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1032 |
How can I find if the control is running in DPI mode
|
1031 |
How can I change the visual appearance of the +/- buttons (method 1)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oAppearance LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oAppearance := oGrid:VisualAppearance() oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSBcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfDxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5Jlg" +; "XIcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRgwZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMINCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=") oAppearance:Add(2,"gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSBcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfDxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCE" +; "eBkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOFSFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJtDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=") oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oGrid:SetProperty("Background",180/*exTreeGlyphOpen*/,0x1000000) oGrid:SetProperty("Background",181/*exTreeGlyphClose*/,0x2000000) oGrid:Columns():Add("Column") oItems := oGrid:Items() h := oItems:AddItem("Root 1") oItems:InsertItem(h,,"Child 1") oItems:InsertItem(h,,"Child 2") oItems:SetProperty("ExpandItem",h,.T.) h := oItems:AddItem("Root 2") oItems:InsertItem(h,,"Child") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1030 |
I am using single selection, the question is if possible to select an item only when the user releases the mouse, as currently it selects the item as soon as the user clicks it
PROCEDURE OnSelectionChanged(oGrid) DevOut( "SelectionChanged" ) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:SelectionChanged := {|| OnSelectionChanged(oGrid)} /*Fired after a new item has been selected.*/ oGrid:BeginUpdate() oGrid:FreezeEvents(.T.) oGrid:SingleSel := .T. oGrid:SelectOnRelease := .T. oGrid:Columns():Add("Column"):FormatColumn := "1 apos `A-Z`" oItems := oGrid:Items() oItems:AddItem("") oItems:SetProperty("SelectItem",oItems:AddItem(""),.T.) oItems:AddItem("") oGrid:FreezeEvents(.F.) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1029 |
Is it possible to select nothing
PROCEDURE OnSelectionChanged(oGrid) DevOut( "SelectionChanged" ) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:SelectionChanged := {|| OnSelectionChanged(oGrid)} /*Fired after a new item has been selected.*/ oGrid:BeginUpdate() oGrid:FreezeEvents(.T.) oGrid:AllowSelectNothing := .T. oGrid:Columns():Add("Column"):FormatColumn := "1 apos `A-Z`" oItems := oGrid:Items() oItems:AddItem("") oItems:SetProperty("SelectItem",oItems:AddItem(""),.T.) oItems:AddItem("") oGrid:FreezeEvents(.F.) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1028 |
How can I specify the color for control's selection when it loses the focus
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oColumn := oGrid:Columns():Add("") oColumn:AllowSizing := .F. oColumn:AllowDragging := .F. oColumn:AllowSort := .F. oColumn:Width := 24 oColumn:SetProperty("Def",2/*exCellHasButton*/,.T.) oGrid:Columns():Add("Column"):FormatColumn := "1 apos `A-Z`" oItems := oGrid:Items() oItems:AddItem("") oItems:SetProperty("SelectItem",oItems:AddItem(""),.T.) oItems:AddItem("") oGrid:SetProperty("Background",166/*exSelBackColorHide*/,AutomationTranslateColor( GraMakeRGBColor ( { 196,196,196 } ) , .F. )) oGrid:SetProperty("Background",167/*exSelForeColorHide*/,AutomationTranslateColor( GraMakeRGBColor ( { 0,0,1 } ) , .F. )) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1027 |
How can I change the background color for checked items (EBN color, frame)
PROCEDURE OnCellStateChanged(oGrid,Item,ColIndex) oGrid:Refresh() RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oAppearance LOCAL oColumn LOCAL oConditionalFormat LOCAL oItems LOCAL h,hChild oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:CellStateChanged := {|Item,ColIndex| OnCellStateChanged(oGrid,Item,ColIndex)} /*Fired after cell's state has been changed.*/ oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oGrid:SelBackMode := 1/*exTransparent*/ oGrid:DefaultItemHeight := 22 oColumn := oGrid:Columns():Add("Tasks") oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:PartialCheck := .T. oAppearance := oGrid:VisualAppearance() oAppearance:Add(2,"gBFLBCJwBAEHhEJAAEhABUkIQAAYAQGKIcBiAKBQAGYBIJDEMQ3DjAUBjMK4ZwTC4AIQjCK4JDKHYJRpHEZgLBMJAAGIZYhhUYRUiYMkiJBGGDIDiGGI2SJAcbTVIEcx9EyUJSgSTJOjCMokTTIU4TTLYASbJafJJhWSaAiyMouDIOMg1BDNIw/Hika6jOgKUisNJXRzWIBTbDlOQ3JqnbCjOQRSrQBoNDAMAiiaKlbwJPK9RoieQXfwUAJrXJcFqXFSLVxNBKAQEBA=") oAppearance:Add(1,"CP:2 1 1 -1 -1") oConditionalFormat := oGrid:ConditionalFormats():Add("%CS0 = 1") oConditionalFormat:SetProperty("BackColor",0x1000000) oGrid:HeaderVisible := .T. oItems := oGrid:Items() h := oItems:AddItem("Project") hChild := oItems:InsertItem(h,,"Task 1") oItems:SetProperty("SelectItem",hChild,.T.) hChild := oItems:InsertItem(h,,"Task 2") oItems:SetProperty("CellState",hChild,0,1) hChild := oItems:InsertItem(h,,"Task 3") oItems:SetProperty("CellState",hChild,0,1) oItems:SetProperty("ExpandItem",h,.T.) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1026 |
How can I change the caption of the checked items (sample 2)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems LOCAL h,hChild oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oColumn := oGrid:Columns():Add("Tasks") oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:PartialCheck := .T. oColumn:SetProperty("Def",17/*exCellValueFormat*/,1) oColumn:FormatColumn := "%CS0 = 1 ? `<bgcolor=000000><fgcolor=FFFFFF> ` + value + ` </fgcolor></bgcolor>` : value" oGrid:HeaderVisible := .T. oItems := oGrid:Items() h := oItems:AddItem("Project") hChild := oItems:InsertItem(h,,"Task 1") oItems:SetProperty("SelectItem",hChild,.T.) hChild := oItems:InsertItem(h,,"Task 2") oItems:SetProperty("CellState",hChild,0,1) hChild := oItems:InsertItem(h,,"Task 3") oItems:SetProperty("CellState",hChild,0,1) oItems:SetProperty("ExpandItem",h,.T.) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1025 |
How can I change the caption of the checked items (sample 1)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems LOCAL h,hChild oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oColumn := oGrid:Columns():Add("Tasks") oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:PartialCheck := .T. oColumn:SetProperty("Def",17/*exCellValueFormat*/,1) oColumn:FormatColumn := "value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)" oGrid:HeaderVisible := .T. oItems := oGrid:Items() h := oItems:AddItem("Project") hChild := oItems:InsertItem(h,,"Task 1") oItems:SetProperty("SelectItem",hChild,.T.) hChild := oItems:InsertItem(h,,"Task 2") oItems:SetProperty("CellState",hChild,0,1) hChild := oItems:InsertItem(h,,"Task 3") oItems:SetProperty("CellState",hChild,0,1) oItems:SetProperty("ExpandItem",h,.T.) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1024 |
How can I change the font for the checked items
PROCEDURE OnCellStateChanged(oGrid,Item,ColIndex) oGrid:Refresh() RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oConditionalFormat LOCAL oItems LOCAL h,hChild LOCAL f oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:CellStateChanged := {|Item,ColIndex| OnCellStateChanged(oGrid,Item,ColIndex)} /*Fired after cell's state has been changed.*/ oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oGrid:DefaultItemHeight := 22 oColumn := oGrid:Columns():Add("Tasks") oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:PartialCheck := .T. oConditionalFormat := oGrid:ConditionalFormats():Add("%CS0 = 1") f := CreateObject("StdFont") f:Name := oGrid:Font():Name() f:Size := 12 oConditionalFormat:Font := f oGrid:HeaderVisible := .T. oItems := oGrid:Items() h := oItems:AddItem("Project") hChild := oItems:InsertItem(h,,"Task 1") oItems:SetProperty("SelectItem",hChild,.T.) hChild := oItems:InsertItem(h,,"Task 2") oItems:SetProperty("CellState",hChild,0,1) hChild := oItems:InsertItem(h,,"Task 3") oItems:SetProperty("CellState",hChild,0,1) oItems:SetProperty("ExpandItem",h,.T.) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1023 |
How can I bold the checked items
PROCEDURE OnCellStateChanged(oGrid,Item,ColIndex) oGrid:Refresh() RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oConditionalFormat LOCAL oItems LOCAL h,hChild oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:CellStateChanged := {|Item,ColIndex| OnCellStateChanged(oGrid,Item,ColIndex)} /*Fired after cell's state has been changed.*/ oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oColumn := oGrid:Columns():Add("Tasks") oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:PartialCheck := .T. oConditionalFormat := oGrid:ConditionalFormats():Add("%CS0 = 1") oConditionalFormat:Bold := .T. oGrid:HeaderVisible := .T. oItems := oGrid:Items() h := oItems:AddItem("Project") hChild := oItems:InsertItem(h,,"Task 1") oItems:SetProperty("SelectItem",hChild,.T.) hChild := oItems:InsertItem(h,,"Task 2") oItems:SetProperty("CellState",hChild,0,1) hChild := oItems:InsertItem(h,,"Task 3") oItems:SetProperty("CellState",hChild,0,1) oItems:SetProperty("ExpandItem",h,.T.) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1022 |
How can I change the foreground color for checked items
PROCEDURE OnCellStateChanged(oGrid,Item,ColIndex) oGrid:Refresh() RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oConditionalFormat LOCAL oItems LOCAL h,hChild oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:CellStateChanged := {|Item,ColIndex| OnCellStateChanged(oGrid,Item,ColIndex)} /*Fired after cell's state has been changed.*/ oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oGrid:SelBackMode := 1/*exTransparent*/ oColumn := oGrid:Columns():Add("Tasks") oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:PartialCheck := .T. oConditionalFormat := oGrid:ConditionalFormats():Add("%CS0 = 1") oConditionalFormat:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,128,128 } ) , .F. )) oGrid:HeaderVisible := .T. oItems := oGrid:Items() h := oItems:AddItem("Project") hChild := oItems:InsertItem(h,,"Task 1") oItems:SetProperty("SelectItem",hChild,.T.) hChild := oItems:InsertItem(h,,"Task 2") oItems:SetProperty("CellState",hChild,0,1) hChild := oItems:InsertItem(h,,"Task 3") oItems:SetProperty("CellState",hChild,0,1) oItems:SetProperty("ExpandItem",h,.T.) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1021 |
How can I change the background color for checked items (solid color)
PROCEDURE OnCellStateChanged(oGrid,Item,ColIndex) oGrid:Refresh() RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oConditionalFormat LOCAL oItems LOCAL h,hChild oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:CellStateChanged := {|Item,ColIndex| OnCellStateChanged(oGrid,Item,ColIndex)} /*Fired after cell's state has been changed.*/ oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oGrid:SelBackMode := 1/*exTransparent*/ oColumn := oGrid:Columns():Add("Tasks") oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:PartialCheck := .T. oConditionalFormat := oGrid:ConditionalFormats():Add("%CS0 = 1") oConditionalFormat:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,128,128 } ) , .F. )) oGrid:HeaderVisible := .T. oItems := oGrid:Items() h := oItems:AddItem("Project") hChild := oItems:InsertItem(h,,"Task 1") oItems:SetProperty("SelectItem",hChild,.T.) hChild := oItems:InsertItem(h,,"Task 2") oItems:SetProperty("CellState",hChild,0,1) hChild := oItems:InsertItem(h,,"Task 3") oItems:SetProperty("CellState",hChild,0,1) oItems:SetProperty("ExpandItem",h,.T.) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1020 |
How can I export the cell's state as well
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oColumns LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oColumns := oGrid:Columns() oColumns:Add("C1"):SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumns:Add("C2"):FormatColumn := "1 index `A-Z`" oColumns:Add("C3"):FormatColumn := "100 index ``" oItems := oGrid:Items() oItems:AddItem("Item 1") oItems:SetProperty("CellState",oItems:AddItem("Item 2"),1) oItems:SetProperty("CellState",oItems:AddItem("Item 3"),1) oGrid:EndUpdate() DevOut( "Export CSV Items including Check-State:" ) oGrid:BeginUpdate() oColumn := oGrid:Columns():Add("Check") oColumn:Position := 0 oColumn:FormatColumn := "%CS0" DevOut( Transform(oGrid:Export(""),"") ) oGrid:Columns():Remove("Check") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1019 |
Is it possible to customize the editor selection colour of the built in text editor, from standard blue to black
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oEditor LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. )) oGrid:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. )) oEditor := oGrid:Columns():Add("Edit"):Editor() oEditor:EditType := 8/*MaskType*/ oEditor:Mask := ";;;rich" oItems := oGrid:Items() oItems:AddItem("") oItems:AddItem("Just a text") oItems:AddItem("") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1018 |
Is it possible to customize the editor selection colour of the built in dropdown editor, from standard blue to black
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oEditor LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:SetProperty("SelBackColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. )) oGrid:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. )) oEditor := oGrid:Columns():Add("DropDown"):Editor() oEditor:AddItem(1,"This is just the first item") oEditor:AddItem(2,"This is just the second item") oEditor:AddItem(3,"This is just the third item") oEditor:EditType := 2/*DropDownType*/ oEditor:Mask := ";;;rich" oItems := oGrid:Items() oItems:AddItem("") oItems:AddItem("Just a text") oItems:AddItem("") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1017 |
The BeforeExpandItem event is fired when clicking the drop down filter button. What we can do to prevent that
PROCEDURE OnBeforeExpandItem(oGrid,Item,Cancel) DevOut( "BeforeExpandItem" ) DevOut( Transform(Item,"") ) DevOut( "ColumnFromPoint" ) DevOut( Transform(oGrid:ColumnFromPoint(-1,-1),"") ) DevOut( "ColumnFromPoint return -1, if the user clicks the +/- glitch, else it returns the index of the column where the click occurs." ) oGrid:Items():InsertItem(Item,,"new child") RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumns LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeforeExpandItem := {|Item,Cancel| OnBeforeExpandItem(oGrid,Item,Cancel)} /*Fired before an item is about to be expanded (collapsed).*/ oGrid:BeginUpdate() oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oColumns := oGrid:Columns() oColumns:Add("Items"):DisplayFilterButton := .T. oItems := oGrid:Items() oItems:SetProperty("ItemHasChildren",oItems:InsertItem(,,"Group 1"),.T.) oItems:SetProperty("ItemHasChildren",oItems:InsertItem(,,"Group 2"),.T.) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1016 |
How do I change the drop down filter icon/button (black)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oAppearance LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oAppearance := oGrid:VisualAppearance() oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQgmPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThdr4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA") oGrid:SetProperty("Background",32/*exCursorHoverColumn*/,-1) oGrid:SetProperty("Background",0/*exHeaderFilterBarButton*/,0x1000000) oGrid:SetProperty("Background",26/*exBackColorFilter*/,AutomationTranslateColor( GraMakeRGBColor ( { 0,0,1 } ) , .F. )) oGrid:SetProperty("Background",27/*exForeColorFilter*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. )) oGrid:SetProperty("Description",25/*exFilterBarExclude*/,"<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>") oGrid:HeaderAppearance := 0/*None2*/ oGrid:SetProperty("BackColorHeader",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. )) oGrid:SetProperty("ForeColorHeader",AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. )) oGrid:HeaderVisible := .T. oColumn := oGrid:Columns():Add("Filter") oColumn:FilterList := 8448/*exShowExclude+exShowCheckBox*/ oColumn:DisplayFilterButton := .T. oColumn:AllowSort := .F. oColumn:AllowDragging := .F. oItems := oGrid:Items() oItems:AddItem("One") oItems:AddItem("Two") oItems:AddItem("Three") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1015 |
How do I change the drop down filter icon/button (white)
|
1014 |
How can I draw a solid frame around the the focusing item
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oAppearance LOCAL oColumn LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:SingleSel := .F. oGrid:DefaultItemHeight := 20 oAppearance := oGrid:VisualAppearance() oAppearance:RenderType := -1 oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABOkGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBKUQSDqEYyjGLIXAWCYSAAMIwDKAUEwpFAZBhgeDYMiSNoYDJCM4wHIURRJFCUJSGWQpTgSIgyT5HFIxXKoASbJabZLhWS6EpWOotTbIQQRYCkEyfKKfZyGURZQqOKA1DBZErWTJESRFJqLazgO4LAhyQYrVgAErzVKVCRNOqbJzADApdpGQJTULDNTQHRFIyhOSnIRrWbMAhid6JUZiVT4dBOIYhSYANAqCwLFqrDJmWrpV5WZjlZ47V6BdAyXJsIrmFJEXaOGhyDDlGybSDZYryfZhUziUw4XjbWwZDqPF6DKTTdSGLREE8WZVlURZvDaep3C+AY8kAYRgGCCBJECUhjDoHROEYWgoAGTQ1CEEx9lGMY0CQUYSnuZQDBGBYFlOH5+H+igGAKAJgEgFgGgGVgDn4CoCmCSA2A6A5hAgDgQgSYRIE4" +; "EoFGGCBiBeBhhkgPgbgcYgICoH4IGGWIOCSBhiGiHgVgoYooFoAoLGIWI+DCCgjCiTgrgII4ImYOoOmOSJ2AYOpWlQDQBICA=") oGrid:ShowFocusRect := .T. oGrid:SetProperty("Background",19/*exShowFocusRect*/,0x1000000) oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oColumn := oGrid:Columns():Add("P1") oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:PartialCheck := .T. oItems := oGrid:Items() h := oItems:AddItem("Root") oItems:InsertItem(h,,"Child 1") oItems:InsertItem(h,,"Child 2") oItems:SetProperty("ExpandItem",h,.T.) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1013 |
The frame around the focusing item is not very clear. Can I show it larger or more cleared (sample 2)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oAppearance LOCAL oColumn LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:SingleSel := .F. oGrid:DefaultItemHeight := 20 oGrid:ShowFocusRect := .T. oAppearance := oGrid:VisualAppearance() oAppearance:RenderType := -1 oAppearance:Add(2,"gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBKUQSDqEYyjGLIXAWCYSAAMIwDKAUEwpFAZBhgeCRUgyJI3RgMUIzVAcRRFEiUJQlIZZCjOAw0SIMU7xZRcNxsACnaZnCR4NiuRYiUhOcqzRIQIQ4CiEahqOgJbDUJYwWZKAyjBY8XTZFCSJCpeJ6egOc5jRxQUp1WAEXx3GSsJKvCZ5cADBY+VLQNS0JBtMSTKSLaiuWoIJqCPaDRheWKQJh1NSnLqEcjyYANDxDCZlWzAYxWTZ2Uz7N7PbB0HY4DyPGKZYrfESVRbQcZNS6nNigPI9XhfGq6VjRe63ZaOaYpWrnOJqTRWjOKYujWdZ2BGO5lkuBAAkmcQkDmDBEAwEQJCgGhMGcQ4pkiSxGAAOYmkQIhvkYNg2gSCgyj+LI4GIMIwF2XQoAYAoAmASAWAaAZgggJgKFiT54DYDoDmECBGBKBJgGg" +; "TgWgWYRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChiigYgsgsYYYBYMIKCMKJOCuDRjGiOgLg6Y5InYPoPmQCAkmsXAQDQBCAg=") oAppearance:Add(3,"CP:2 -3 0 3 0") oGrid:SetProperty("Background",19/*exShowFocusRect*/,0x3010101) oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oColumn := oGrid:Columns():Add("P1") oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:PartialCheck := .T. oItems := oGrid:Items() h := oItems:AddItem("Root") oItems:InsertItem(h,,"Child 1") oItems:InsertItem(h,,"Child 2") oItems:SetProperty("ExpandItem",h,.T.) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1012 |
The frame around the focusing item is not very clear. Can I show it larger or more cleared (sample 1)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oAppearance LOCAL oColumn LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:SingleSel := .F. oGrid:ShowFocusRect := .T. oAppearance := oGrid:VisualAppearance() oAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABHoDg6AADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFiCCQwSDKEjyCKcGRHF6MI6gOYpCgOIYjRJNIASVAceAAGaUZrjSgobjmOYhAJCLqhYIgASXJqLaBlOCaAieSc+QhjQJIJoeCZXU5TFg1BTsOhqEqcRiseaRVDCaIJWzbdYWLDdNQHHKYLjnWorbpSJZ5XjNEySDQkMS9PrEJ7vST8FBCdAABLJUB2BR9RwxRafKpnWwJDpmCaOQLXEB5DK1PyVMTKYrtGy7GrIAJxWxbV4UHh+QABOzIMAvHKJMwvHYcUZne5XVLeF41HbONogPaJZyIAK2cLROq6Xo7GEcJZEcLASB4DwvgWUZlE6AQQhKAYkkYdA6hyDIwHgSoqFwQgmnsYxjGgSIiBOTpSEiAwRgOJI7j4JAHA6U5wm0MpPlOBIjD8TZiGYCICiCGAuA6AxhAgMgSgOYQ4DY" +; "Bg/g6cw1n+ABOmMMJ9DmCwjnScw4RsVJngkYh4hoKIKmKKI2CmC5ikiQgqgiT5jhyMw8g4QwIn0OIKEiCJhD8DwTGyfA7k0WQOEWEQkGkJhIhKZB5DYSoTiSCQEn4PQOCOXJcCeIJjliaIQk0aRyF4O5llmAhfhgZhJg4ZoYiaAxYn4PZOhOZJaCUZYTiYQw1mcOZUm+HQnHmWh4h6Z4pnYeYfk0eYsmqG4nAgNJ2DqD5DkCWoiGiOgqgyI5omoRoNiSaQKFKEojCaM4ugSFhOjkAJcieKgDkaH4oioGoOiaKRqgqEoqDddwyhuAxPgOMJ8DyDZqk6NYtCsapmjiLprHqdo6i+K5K1oPhOlqPgKD4DpjnII4yiOewuk6MxtAsMpSjObQ7EaT4wk6ewYn0PgPAiCJkjeLgDk6X44i4G4OmaORuguEpqDkLAzkaWg+E8GIUmaPIvEOVpzj2Lxbl6eo+G+S5in4OYPmOaJyjuTwjnYWpBg6DAjAqQZwkwJw" +; "NkKcJsEcEJCDBEpaD6Dw8BiapGjGSgfB2RpxmyBwgkicZ8haBw/g+M5TBcPQPlOXJskscp8jsMJMnMLJXDGTZzEyYw2kwMoDlcFw9i2M4/EGUJPg0CxFlENBtCcSJSnQfQ0m+SgPHsaJ7lALZLG6XZVHWDRfFqVY1k0ZxdladYTnifJUGaeAWAeMnSGcGWgBObJ3lWbwdjKW5cHcTZPHaLkN4GxXDlFqFsA4uRbBOGAFAEIzAsDEFOBkfYqR4D6AOBEYo8QuBvAmMceInBDgcD0JwOIqQyJ1DMAwG4IANDnHSMoK4QhOgMBGNEIQvQWAdGenETIswGiddsAAQAgCAgA==") oAppearance:Add(2,"gBFLBCJwBAEHhEJAAEhABeEGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADDFIBQSLAYROGSDJBGODJDjWGIeQLOEhQHIMRxPE6UYLhWYpBDKPYcUbGc7yBBMVwGf59XzACoKSheQIVSDQkw6Fo6NYhAxHALyNRkBy8f60KjtGpodDUJYvW5JYyjBZ8EznOqbJBkeJ7BgOe5NQjaD72VgdWQJFSWJajWYYJDOJY2ZAAE5TVINEwxJbDaylChIdxaF6WAzZEBhBYoATPNLBMrhWqKDw2XaQWBCOgwHYeR5LU7BdRwbIrRq2eAAXbcVyXfDddZlBK+QA0SK9lRVTKvJZmKgBWw1COSxmAAGw4kcNx1iKFBiCAfQsG8lJemucg7nsXpUHOOxrm+DI3jOH4XAOBx2nscw0j2HhPG4L5uGEVIECQCBCEUAYkGMHQHFGSBlGaAxkEgQgTGCVBsDYQhCgQJZrHK" +; "UggGEShkFGNgIlsNpPnMHJHD+TADAIJIJiIWIeCqChikiIgmgiD5zHyXxgiACJKCuC4jHiZgtg6I4IlkCQwkwOIonMPJjEkFhGhGZBpA4KoMBCGJuEiE5lAkGg7hMY4JEYVoUCUNAOE6FZl0KWQACWOR2GKF5mBmChchkJRZhoXYaCKKYqGuDglEmNhuhWZpIiYc4dCcCRqGmHZlgm2YxAwSQKESHwkFkKgpiAIAIH4PIimOOg2DiChoiQJRRD+TZDHCfwyAyCgyg+JpiioYJ/DgDgIlECQ6lwRAEICA=") oAppearance:Add(3,"CP:2 -2 0 2 0") oGrid:SetProperty("SelBackColor",0x1000000) oGrid:SetProperty("SelForeColor",AutomationTranslateColor( GraMakeRGBColor ( { 0,0,0 } ) , .F. )) oGrid:SetProperty("Background",19/*exShowFocusRect*/,0x3ff0000) oGrid:LinesAtRoot := -1/*exLinesAtRoot*/ oColumn := oGrid:Columns():Add("P1") oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:PartialCheck := .T. oItems := oGrid:Items() h := oItems:AddItem("Root") oItems:InsertItem(h,,"Child 1") oItems:InsertItem(h,,"Child 2") oItems:SetProperty("ExpandItem",h,.T.) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1011 |
I have a column right-aligned. How can I display its check box aligned to the right, as it appears to the left of the cell's caption
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2 LOCAL oColumns LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:ColumnAutoResize := .T. oGrid:DrawGridLines := 2/*exVLines*/ oColumns := oGrid:Columns() oColumn := oColumns:Add("Left") oColumn:AllowSizing := .F. oColumn:Width := 96 oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:FormatColumn := "0 pos `A-Z`" oColumn1 := oColumns:Add("Center") oColumn1:HeaderAlignment := 1/*CenterAlignment*/ oColumn1:Alignment := oColumn1:HeaderAlignment() oColumn1:AllowSizing := .F. oColumn1:Width := 96 oColumn1:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn1:FormatColumn := "0 pos `A-Z`" oColumn2 := oColumns:Add("Right") oColumn2:HeaderAlignment := 2/*RightAlignment*/ oColumn2:Alignment := oColumn2:HeaderAlignment() oColumn2:AllowSizing := .F. oColumn2:Width := 96 oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn2:FormatColumn := "0 pos `A-Z`" oColumn2:SetProperty("Def",34/*exCellDrawPartsOrder*/,"caption,check,icon,icons,picture") oColumns:Add("") oItems := oGrid:Items() oItems:SetProperty("CellState",oItems:AddItem("Item 1"),3,1) oItems:SetProperty("CellState",oItems:AddItem("Item 2"),2,1) oItems:SetProperty("CellState",oItems:AddItem("Item 3"),1,1) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1010 |
Can I display the column's multiple-lines caption vertically oriented (method 2)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2 LOCAL oColumns LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:HeaderHeight := 48 oGrid:ColumnAutoResize := .T. oColumns := oGrid:Columns() oColumns:Add("And others ...") oColumn := oColumns:Add("") oColumn:HTMLCaption := "First Column" oColumn:HeaderVertical := .T. oColumn:Width := 36 oColumn:AllowSizing := .F. oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:SetProperty("Def",48/*exCellPaddingLeft*/,8) oColumn:Position := 0 oColumn1 := oColumns:Add("") oColumn1:HTMLCaption := "<c><b>Second Column" oColumn1:HeaderVertical := .T. oColumn1:Width := 36 oColumn1:AllowSizing := .F. oColumn1:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn1:SetProperty("Def",48/*exCellPaddingLeft*/,8) oColumn1:Position := 1 oColumn2 := oColumns:Add("") oColumn2:HTMLCaption := "<r>Third Column" oColumn2:HeaderVertical := .T. oColumn2:Width := 36 oColumn2:AllowSizing := .F. oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn2:SetProperty("Def",48/*exCellPaddingLeft*/,8) oColumn2:Position := 2 oItems := oGrid:Items() oItems:SetProperty("CellState",oItems:AddItem("Item 1"),3,1) oItems:SetProperty("CellState",oItems:AddItem("Item 2"),2,1) oItems:SetProperty("CellState",oItems:AddItem("Item 3"),1,1) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1009 |
Can I display the column's multiple-lines caption vertically oriented (method 1)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2 LOCAL oColumns LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:HeaderHeight := 48 oGrid:HeaderSingleLine := .F. oGrid:ColumnAutoResize := .T. oColumns := oGrid:Columns() oColumns:Add("And others ...") oColumn := oColumns:Add("First Column") oColumn:HeaderVertical := .T. oColumn:Width := 36 oColumn:AllowSizing := .F. oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:SetProperty("Def",48/*exCellPaddingLeft*/,8) oColumn:Position := 0 oColumn1 := oColumns:Add("Second Column") oColumn1:HeaderBold := .T. oColumn1:HeaderVertical := .T. oColumn1:Width := 36 oColumn1:AllowSizing := .F. oColumn1:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn1:SetProperty("Def",48/*exCellPaddingLeft*/,8) oColumn1:Position := 1 oColumn2 := oColumns:Add("Third Column") oColumn2:HeaderVertical := .T. oColumn2:Width := 36 oColumn2:AllowSizing := .F. oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn2:SetProperty("Def",48/*exCellPaddingLeft*/,8) oColumn2:Position := 2 oItems := oGrid:Items() oItems:SetProperty("CellState",oItems:AddItem("Item 1"),3,1) oItems:SetProperty("CellState",oItems:AddItem("Item 2"),2,1) oItems:SetProperty("CellState",oItems:AddItem("Item 3"),1,1) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1008 |
Can I display the column's caption vertically oriented (method 2)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2 LOCAL oColumns LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:HeaderHeight := 48 oGrid:ColumnAutoResize := .T. oColumns := oGrid:Columns() oColumns:Add("And others ...") oColumn := oColumns:Add("") oColumn:HTMLCaption := "First" oColumn:HeaderVertical := .T. oColumn:Width := 20 oColumn:AllowSizing := .F. oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:Position := 0 oColumn1 := oColumns:Add("") oColumn1:HTMLCaption := "<c><b>Second" oColumn1:HeaderVertical := .T. oColumn1:Width := 20 oColumn1:AllowSizing := .F. oColumn1:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn1:Position := 1 oColumn2 := oColumns:Add("") oColumn2:HTMLCaption := "<r>Third" oColumn2:HeaderVertical := .T. oColumn2:Width := 20 oColumn2:AllowSizing := .F. oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn2:Position := 2 oItems := oGrid:Items() oItems:SetProperty("CellState",oItems:AddItem("Item 1"),3,1) oItems:SetProperty("CellState",oItems:AddItem("Item 2"),2,1) oItems:SetProperty("CellState",oItems:AddItem("Item 3"),1,1) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1007 |
Can I display the column's caption vertically oriented (method 1)
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2 LOCAL oColumns LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:HeaderHeight := 48 oGrid:ColumnAutoResize := .T. oColumns := oGrid:Columns() oColumns:Add("And others ...") oColumn := oColumns:Add("First") oColumn:HeaderVertical := .T. oColumn:Width := 20 oColumn:AllowSizing := .F. oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:Position := 0 oColumn1 := oColumns:Add("Second") oColumn1:HeaderBold := .T. oColumn1:HeaderVertical := .T. oColumn1:Width := 20 oColumn1:AllowSizing := .F. oColumn1:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn1:Position := 1 oColumn2 := oColumns:Add("Third") oColumn2:HeaderVertical := .T. oColumn2:Width := 20 oColumn2:AllowSizing := .F. oColumn2:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn2:Position := 2 oItems := oGrid:Items() oItems:SetProperty("CellState",oItems:AddItem("Item 1"),3,1) oItems:SetProperty("CellState",oItems:AddItem("Item 2"),2,1) oItems:SetProperty("CellState",oItems:AddItem("Item 3"),1,1) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1006 |
How do I automatically bold items being checked
PROCEDURE OnCellStateChanged(oGrid,Item,ColIndex) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oConditionalFormat LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:CellStateChanged := {|Item,ColIndex| OnCellStateChanged(oGrid,Item,ColIndex)} /*Fired after cell's state has been changed.*/ oGrid:BeginUpdate() oGrid:SelBackMode := 1/*exTransparent*/ oConditionalFormat := oGrid:ConditionalFormats():Add("%CS0","check") oConditionalFormat:Bold := .T. oGrid:Columns():Add("Items"):SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oGrid:Columns():Add(oGrid:ConditionalFormats:Item("check"):Expression()):FormatColumn := oGrid:ConditionalFormats:Item("check"):Expression() oItems := oGrid:Items() oItems:AddItem("Item 1") oItems:SetProperty("CellState",oItems:AddItem("Item 2"),0,1) oItems:AddItem("Item 3") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1005 |
How can I use the CellState with ConditionalFormat/ComputedField/FormatColumn
PROCEDURE OnCellStateChanged(oGrid,Item,ColIndex) RETURN #include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1 LOCAL oItems LOCAL h oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:CellStateChanged := {|Item,ColIndex| OnCellStateChanged(oGrid,Item,ColIndex)} /*Fired after cell's state has been changed.*/ oGrid:BeginUpdate() oGrid:LinesAtRoot := 4/*exGroupLinesInsideLeaf*/ oGrid:SelBackMode := 1/*exTransparent*/ oColumn := oGrid:Columns():Add("Items") oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oColumn:PartialCheck := .T. oColumn1 := oGrid:Columns():Add("Format") oColumn1:FormatColumn := "%CS0" oColumn1:Caption := oColumn1:FormatColumn() oColumn1:SetProperty("Def",5/*exCellForeColor*/,8421504) oColumn1:SetProperty("Def",8/*exHeaderForeColor*/,oColumn1:Def(5/*exCellForeColor*/)) oItems := oGrid:Items() h := oItems:AddItem("Root") oItems:InsertItem(h,,"Item 1") oItems:SetProperty("CellState",oItems:InsertItem(h,,"Item 2"),0,1) oItems:SetProperty("CellState",oItems:InsertItem(h,,"Item 3"),0,1) oItems:SetProperty("ExpandItem",h,.T.) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1004 |
How can I use the CellData with ConditionalFormat/ComputedField/FormatColumn
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:Columns():Add("Items") oColumn := oGrid:Columns():Add("Format") oColumn:FormatColumn := "%CD0" oColumn:Caption := oColumn:FormatColumn() oColumn:SetProperty("Def",5/*exCellForeColor*/,8421504) oColumn:SetProperty("Def",8/*exHeaderForeColor*/,oColumn:Def(5/*exCellForeColor*/)) oItems := oGrid:Items() oItems:SetProperty("CellData",oItems:AddItem("Item 1"),0,1234) oItems:SetProperty("CellData",oItems:AddItem("Item 2"),0,"this is just an user data") oItems:SetProperty("CellData",oItems:AddItem("Item 3"),0,"01/01/2001") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1003 |
How can I use the CellValue/CellCaption with ConditionalFormat/ComputedField/FormatColumn
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oColumn,oColumn1,oColumn2 LOCAL oEditor LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oColumn := oGrid:Columns():Add("Items") oEditor := oColumn:Editor() oEditor:EditType := 3/*DropDownListType*/ oEditor:AddItem(1,"Item 1") oEditor:AddItem(2,"Item 2") oEditor:AddItem(3,"Item 3") oColumn1 := oGrid:Columns():Add("Format") oColumn1:FormatColumn := "%0" oColumn1:Caption := oColumn1:FormatColumn() oColumn1:SetProperty("Def",5/*exCellForeColor*/,8421504) oColumn1:SetProperty("Def",8/*exHeaderForeColor*/,oColumn1:Def(5/*exCellForeColor*/)) oColumn1:AllowSizing := .F. oColumn2 := oGrid:Columns():Add("Format") oColumn2:FormatColumn := "%C0" oColumn2:Caption := oColumn2:FormatColumn() oColumn2:SetProperty("Def",5/*exCellForeColor*/,8421504) oColumn2:SetProperty("Def",8/*exHeaderForeColor*/,oColumn2:Def(5/*exCellForeColor*/)) oColumn2:AllowSizing := .F. oItems := oGrid:Items() oItems:AddItem(1) oItems:SetProperty("CellValue",oItems:AddItem(0),0,2) oItems:AddItem(2) oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1002 |
Can I display the radio-button with a solid color
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:SetProperty("RadioImage",.F.,32699122) oGrid:SetProperty("RadioImage",.T.,16777216) oGrid:Columns():Add("Check"):SetProperty("Def",1/*exCellHasRadioButton*/,.T.) oItems := oGrid:Items() oItems:AddItem("Radio 1") oItems:SetProperty("CellState",oItems:AddItem("Radio 2"),0,1) oItems:AddItem("Radio 1") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |
1001 |
Can I display the check-box with a solid color
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oGrid LOCAL oItems oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oGrid := XbpActiveXControl():new( oForm:drawingArea ) oGrid:CLSID := "Exontrol.Grid.1" /*{101EE60F-7B07-48B0-A13A-F32BAE7DA165}*/ oGrid:create(,, {10,60},{610,370} ) oGrid:BeginUpdate() oGrid:SetProperty("CheckImage",0/*Unchecked*/,32699122) oGrid:SetProperty("CheckImage",1/*Checked*/,16777216) oGrid:Columns():Add("Check"):SetProperty("Def",0/*exCellHasCheckBox*/,.T.) oItems := oGrid:Items() oItems:AddItem("Check 1") oItems:SetProperty("CellState",oItems:AddItem("Check 2"),0,1) oItems:AddItem("Check 3") oGrid:EndUpdate() oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN |